编码对象

要被写入和读取的对象必须继承NSObject,,并且实现NSCoding

关键还要实现NSCoding 的两个必要的方法

public func encode(with aCoder: NSCoder)

public init?(coder aDecoder: NSCoder)

格式如下:
// 编码的时候调用这个方法
    func encode(with aCoder: NSCoder) {
        aCoder.encode(sno, forKey: "sno")
        aCoder.encode(name, forKey: "name")
        aCoder.encode(score, forKey: "score")
    }

    // 解码的时候调用这个方法
    required init?(coder aDecoder: NSCoder) {
        sno = aDecoder.decodeObject(forKey: "sno") as! String
        name = aDecoder.decodeObject(forKey: "name") as! String
        score = aDecoder.decodeInteger(forKey: "score")
    }

//新创一个demo类来测试这个归档操作
// 创建对象
        let student = Student(sno: "1101", name: "maizixueyuan", score: 99)

 // 构造路径
        let path = "\(documentsPath)/student.archive"

 // 归档对象
        NSKeyedArchiver.archiveRootObject(student, toFile: path)

// 解档操作
        let object = NSKeyedUnarchiver.unarchiveObject(withFile: path) as! Student
        print("\(object.sno), \(object.name), \(object.score)")

// 检查文件
        print("\(NSHomeDirectory())")
时间: 2024-12-08 12:24:12

编码对象的相关文章

Java NIO之Charset类字符编码对象

介绍 java中使用Charset来表示编码对象 This class defines methods for creating decoders and encoders and for retrieving the various names associated with a charset. Instances of this class are immutable. This class also defines static methods for testing whether a

NIO之Charset类字符编码对象

Charset类字符编码对象 介绍 java中使用Charset来表示编码对象 This class defines methods for creating decoders and encoders and for retrieving the various names associated with a charset. Instances of this class are immutable. This class also defines static methods for te

Objective-C日记-之编码对象属性

NSCoder类 1,概述 将对象的实例变量和其他数据编码为数据块,然后将他们存在到磁盘当中:以后将这些数据块读回到内存中,并且还基于保存的数据创建新的对象,也称序列化或反序列化. 2,用法 a,首先,定义一个类,使其遵守<NSCoding>协议 @interface Thingie:NSObject <NSCoding>{ NSString *name; int magicNumber; float shoeSize; NSMutableArray *subThingies; }

编码对象或者字串中包含Unicode字符怎样转换为中文

In [18]: c = '你好' In [20]: d = c.encode('unicode_escape') In [21]: d Out[21]: b'\\u4f60\\u597d' In [23]: e = d.decode('utf-8') In [24]: e Out[24]: '\\u4f60\\u597d' In [25]: type(e) Out[25]: str In [26]: f = e.encode('utf-8').decode('unicode_escape')

redis的对象类型及其相应的编码类型

1.redis的对象类型 Redis 使用对象来表示数据库中的键和值, 每次当我们在 Redis 的数据库中新创建一个键值对时, 我们至少会创建两个对象, 一个对象用作键值对的键(键对象), 另一个对象用作键值对的值(值对象). 键对象总是字符串对象类型,值对象则有以下类型 对象 对象 type 属性的值 TYPE 命令的输出 字符串对象 REDIS_STRING "string" 列表对象 REDIS_LIST "list" 哈希对象 REDIS_HASH &qu

使用 Unicode 编码

面向公共语言运行库的应用程序使用编码将字符表示形式从本机字符方案(Unicode)映射为其他方案.应用程序使用解码将字符从非本机方案(非 Unicode)映射为本机方案.System.Text 命名空间提供了使您能够对字符进行编码和解码的类.System.Text 编码支持包括以下编码: Unicode UTF-32 编码 Unicode UTF-32 编码将 Unicode 字符表示为 32 位整数序列.您可以使用 UTF32Encoding 类在字符和 UTF-32 编码之间相互转换. Un

定位- CLGeoencoder - 反编码

#import "ViewController.h" #import "MBProgressHUD+MJ.h" #import <CoreLocation/CoreLocation.h> @interface ViewController () @property (nonatomic, strong) CLGeocoder *geocoder; // 编码对象 @property (weak, nonatomic) IBOutlet UILabel *

猫猫学iOS 之CoreLocation反地理编码小Demo输入经纬度得到城市

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 输入经纬度,能够得到相应的地名 二:思路 跟地里编码差点儿相同 1.获取用户输入的经纬度 2.依据用户输入的经纬度创建CLLocation对象 3.依据CLLocation对象获取相应的地标信息 三:代码 #import "ViewController.h" #import <CoreLocation/CoreLocation.h>

SAP Business One 对象类型大全 (Object Type)

常量 对象编码 对象描述 oChartOfAccounts 1 科目表 oBusinessPartners 2 业务伙伴主数据 oBanks 3 银行* oItems 4 物料主数据 oVatGroups 5 税收组 oPriceLists 6 价格清单 oSpecialPrices 7 特殊价格 oItemProperties 8 物料属性 oBusinessPartnerGroups 10 业务伙伴组 oUsers 12 用户 oInvoices 13 应收发票 oCreditNotes 1