jod*_*odm 9 objective-c nsdictionary
保存词典是否有大小限制?
我试图使用writeToFile编写一个包含大约100个带嵌套字典的密钥的相当大的字典:但它永远不会写入并且始终为false.
这是一个限制还是我做错了什么,
我使用的代码如下.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSString *fullPath = [documentsDir stringByAppendingPathComponent:@"test.plist"];
[myDict writeToFile: fullPath atomically:YES];
Run Code Online (Sandbox Code Playgroud)
Otu*_*tuk 27
还有一个技巧,除了只使用符合条件的对象(NSNumber,NSString,NSData等实例)之外,键必须是NSString对象.通常,您可以将任何对象用于NSDictionary键,但要成功使用writeToFile:NSDictionary中的键需要是实例NSString.
bbu*_*bum 12
没有大小限制(除了内存和磁盘空间).
有什么内容myDict?
如果它只是属性列表中允许的一小组类,那么你就无法使用writeToFile:atomically:.
您需要将字典限制为仅包含这些类的实例,或者您需要使用不同的存档方法.
特别是,许多JSON库会将NSNULL实例强加到集合中.那些不能存档.您需要编辑它们或将它们替换为可以存档的对象.
相关:
小智 5
我还要添加一个我在 Lion 上遇到的技巧。在调用 NSDictionary 的writeToFile:atomically:. 您可以使用 NSFileManager 来测试是否存在并在必要时创建一个新文件夹。
| 归档时间: |
|
| 查看次数: |
11444 次 |
| 最近记录: |