我为我的节目我加载一个相当大的MutableDictionray,我想用一个UIProgressBar。有没有人有建议如何确定加载时间,使这项工作?UIProgressBar加载的NSMutableDictionary
感谢
我为我的节目我加载一个相当大的MutableDictionray,我想用一个UIProgressBar。有没有人有建议如何确定加载时间,使这项工作?UIProgressBar加载的NSMutableDictionary
感谢
我不相信你会找到一个简单的答案,但这里有一些指针。我假设你目前正在用-dictionaryWithContentsOfFile:
加载这个。
首先,不是强迫用户等待长时间加载,而是考虑更改数据存储。核心数据可能是一个比一个非常大的词典更好的工具。
使用-[NSFileHandle readDataOfLength:]
将文件读入NSData
以便将其分块,以便更新进度栏。您可以在后台线程上执行此操作,并发布通知或在主线程上调用委派方法以更新进度指示器。
您可能想要试验-readInBackgroundAndNotify
。我不知道iPhone头部的缓冲区大小,但它可能足够小,以合理的间隔返回通知,并且它应该消除管理自己的后台线程的需要。
将数据读入NSData
后,使用+[NSPropertyListSerialization propertyListFromData:mutabilityOption:format:errorDescription:
解析数据。这应该足够快,不会挂起任何东西,但如果速度太慢,可以在后台线程上执行此操作,并使其成为上次进度条更新的一部分。可能需要进行一些实验才能让用户界面更流畅。
我想不出有一次我看到iphone上的进度条,接受原始安装。 UIActivityIndicators更频繁使用,如果您需要使用快速教程,我可以提供帮助。对不起,您的原始问题分心了。 – TahoeWolverine 2009-07-21 20:57:32