零基础、手把手学习iOS开发!
掌握iOS开发日常工作中的大多数知识点!
你将收获
零基础、手把手学习iOS开发!
掌握iOS开发日常工作中的大多数知识点!
适用人群
课程介绍
【课程特点】
学习iOS开发,请选本套课程,理由如下:
1、233节大容量课程:包含了iOS开发中的大部分实用技能;
2、创新的教学模式:手把手教您iOS开发技术,一看就懂,一学就会;
3、贴心的操作提示:让您的眼睛始终处于操作的焦点位置,不用再满屏找光标;
4、语言简洁精练:瞄准问题的核心所在,减少对思维的干扰,并节省您宝贵的时间;
【课程内容】
本视频教程拥有233节课程,包含iOS开发的方方面面:iOS开发基础理论知识、 视图、视图控制器、多媒体、数据处理、常用插件、信用卡卡号识别、自动化测试、网络访问、多线程、ShareSDK社会化分享、CoreImage、CoreText、CoreML机器学习、ARKit增强现实、面部检测、Storyboard技巧、关键帧动画、本地通知、陀螺仪相机定位设备、本地化、通过IAP内购实现营利、App上传与审核等超多干货!
同学笔记
2020-04-16 20:53:55
来源:NSKeyedArchiver存储和解析数据 查看详情
ViewController.swift
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//创建一个模型对象并对其进行归档和恢复归档操作
//初始化刚定义的对象模型
let user1 = UserModel()
//设置对象名称和密码属性值
user1.name = "Jerry"
user1.password = "123"
//添加异常捕捉语句,用来执行归档和恢复归档操作
do {
//创建一个可变二进制数据对象,用来存储归档后的模型对象。归档指的是将Swift对象存储为一个文件或网络上的一个数据块
let data = try NSKeyedArchiver.archivedData(withRootObject: user1, requiringSecureCoding: true)
//将归档的数据存储在程序包的Preference目录
UserDefaults.standard.set(data, forKey: "user1")
UserDefaults.standard.synchronize()
//对归档数据进行加载和恢复归档操作
//读取刚刚保存的数据
let dataFrom = UserDefaults.standard.data(forKey: "user1")
//恢复归档操作,恢复成内存中一个Swift对象
let savedUser = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(dataFrom!) as? UserModel
print(savedUser?.name ?? "")
print(savedUser?.password ?? "")
}
catch {
print("Archive error.")
}
// Do any additional setup after loading the view.
}
}
UserModel.swift
import Foundation
//创建基本对象模型
//创建一个继承自NSObject的类并遵循NSCoding协议。遵循该协议的类可以被序列化和反序列化。这样可以归档到磁盘上或分发到网络上
class UserModel: NSObject, NSCoding, NSSecureCoding {
//为对象模型添加姓名和密码两个属性
static var supportsSecureCoding: Bool = true
var name: NSString!
var password: NSString!
//添加一个序列方法用来对模型对象进行序列化操作
func encode(with aCoder: NSCoder) {
//对模型对象的姓名和密码属性进行编码操作,并设置对应的键名
aCoder.encode(self.name, forKey: "name")
aCoder.encode(self.password, forKey: "password")
}
//添加另一个来自协议的方法用来对模型对象进行反序列化操作
required init(coder aDecoder: NSCoder) {
super.init()
//对模型对象的姓名和密码属性进行解码操作
self.name = aDecoder.decodeObject(forKey: "name") as? NSString
self.password = (aDecoder.decodeObject(forKey: "password") as! NSString)
}
//重载父类的初始化方法
override init() {
}
}
没有更多了
课程讨论
时光不染
来源:使用UIScrollView展示多个视图控制器
前端小白123
来源:给代码方法添加宏注释
前端小白123
来源:使用资源文件夹导入并管理图片素材
weixin_41856627
leonSchneider
来源:您的第一个工程项目
leonSchneider
来源:您的第一个工程项目
啾
来源:NSKeyedArchiver存储和解析数据
qq_36084972
qq_43022573
来源:UITextField控件的使用
qq_43022573
来源:UINavigationController导航控制器的原理 [理论]