kuk*_*shi 9 objective-c nskeyedarchiver ios
最近,我正在学习NSKeyedArchiver和NSKeyedUnarchiver.我发现有三种方法来存档数组,我试图找出差异.
1.使用 archiveRootObject:toFile:
[NSKeyedArchiver archiveRootObject:testArray toFile:filePath];
Run Code Online (Sandbox Code Playgroud)
2.从中获取数据archivedDataWithRootObject:并将其写入文件
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:testArray];
[data writeToFile:filePath atomically:YES];
Run Code Online (Sandbox Code Playgroud)
3.使用encodeObject:获取数据
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:testArray forKey:@"testArray"];
[archiver finishEncoding];
[data writeToFile:path atomically:YES];
Run Code Online (Sandbox Code Playgroud)
经过测试,我发现上述所有方法都可以正常工作,并将相同的内容写入文件.
Q1:上述所有方式有何不同?
Q2:我可以在第三种方式使用NSData吗?
第一个没有让您选择如何处理数据.它会转到一个文件.我使用第二种方法,例如,通过网络连接发送数据.它更灵活.第三种方式做同样的事情,除了你可以把单个对象放入其中.我不确定它是否适用于阵列,但它可能会.它更加灵活,因此您无需准备好阵列或字典.
这就是它.这完全是为了方便与灵活.
| 归档时间: |
|
| 查看次数: |
2168 次 |
| 最近记录: |