Objective c UIProgressBar加载NSMutableDictionary
我是我的程序,我正在加载一个相当大的MutableDictionray,我想使用UIProgressBar。是否有人对如何确定装载时间以使其工作有建议Objective c UIProgressBar加载NSMutableDictionary,objective-c,iphone,cocoa-touch,progress-bar,Objective C,Iphone,Cocoa Touch,Progress Bar,我是我的程序,我正在加载一个相当大的MutableDictionray,我想使用UIProgressBar。是否有人对如何确定装载时间以使其工作有建议 谢谢我不相信你会找到一个简单的答案,但这里有一些建议。我假设您当前正在使用-dictionaryWithContentsOfFile:加载此文件 >首先,强迫用户等待长负载,考虑更改数据存储。核心数据可能是一个更好的工具,而不是一个非常大的字典 使用-[NSFileHandle readDataOfLength:将文件读入一个NSData,以
谢谢我不相信你会找到一个简单的答案,但这里有一些建议。我假设您当前正在使用
-dictionaryWithContentsOfFile:
加载此文件
-
<> >首先,强迫用户等待长负载,考虑更改数据存储。核心数据可能是一个更好的工具,而不是一个非常大的字典
- 使用
将文件读入一个-[NSFileHandle readDataOfLength:
,以便将其分块,以便更新进度条。您可以在后台线程上执行此操作并发布通知,或者在主线程上调用委托方法以更新进度指示器NSData
- 您可能想尝试使用
。我不知道iPhone的缓冲区大小,但它可能足够小,可以在合理的时间间隔内返回通知,而且它应该可以消除管理自己后台线程的需要-readInBackgroundAndNotify
- 将数据读入
后,使用NSData
。这应该足够快,不会挂起任何东西,但如果速度太慢,可以在后台线程上执行此操作,并将其作为上一次进度条更新的一部分。可能需要进行一些实验才能使UI在此平滑+[NSPropertyListSerialization propertyListFromData:mutabilityOption:format:errorDescription: