我有一个类似项目的应用程序,需要跟踪几千个资源文件。磁盘上的每个文件都代表我的一个" MyElement"我的应用中的对象。当我使用路径跟踪文件的位置时,性能非常好......一个引用4,000个文件的项目文件在大约1.5秒内打开。
然而,如果我使用书签,虽然我获得了很多(文件可以移动而不会破坏我对它们的引用),但性能很糟糕。
打开我必须使用URLByResolvingBookmarkData来获取文件路径的同一项目,大约需要25秒。
对应用程序进行概要分析确实显示在URLByResolvingBookmarkData中花费的时间很长...主要是在名为volumePropertyProviderPrepareValues的OS函数中。
我已经开始使用书签,但也在缓存路径。但是,当我打开项目时,需要花费很长时间来检查每个书签并验证我的缓存路径是否仍然是最新的。
在这种情况下,有没有办法提高书签的性能?
他们是用:
创建的NSData* bookmarkData = [fileURL bookmarkDataWithOptions:NSURLBookmarkCreationMinimalBookmark includingResourceValuesForKeys:nil relativeToURL:nil error:&inError];