【问题标题】:Loading a large dataset in chunks on Iphone using NSkeyedArchiver使用 NSkeyedArchiver 在 Iphone 上分块加载大型数据集
【发布时间】:2012-07-01 19:13:50
【问题描述】:

我有一个使用 NSkeyedArchiver 写入磁盘的大型 NSDictionary。由于该字典可能/将非常大,因此将整个内容加载到内存中是不可行的。什么是分块加载字典的最佳方法,使用该块,然后移动到下一个等,从而节省内存。

【问题讨论】:

    标签: iphone objective-c memory nskeyedarchiver


    【解决方案1】:

    不要使用NSkeyedArchiver 归档一个包含所有对象的大NSDictionary

    使用encodeObject:forKey: 归档对象使用decodeObjectForKey: 取消归档。
    这样,您无需取消归档整个 NSDictionary 即可仅检索一个对象。

    【讨论】:

    • 谢谢,最后我放弃了 NSkeyedArchiver 转而使用 [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err] ;因为它导致文件大小要小得多。我还最终将我的档案分成(较小的)单独的文件并使用了 NSfilewrapper 但我不接受你的答案是正确的
    猜你喜欢
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2020-08-12
    相关资源
    最近更新 更多