为啥加载 UIDocument 需要 40 秒?
Posted
技术标签:
【中文标题】为啥加载 UIDocument 需要 40 秒?【英文标题】:Why does it take UIDocument 40 seconds to load?为什么加载 UIDocument 需要 40 秒? 【发布时间】:2012-06-27 13:04:45 【问题描述】:我正在尝试加载 UIDocument 以快速预览其内容(包含在文件包装器中)。我称这段代码为:
-(void)previewLoadDocAtURL:(NSURL*)fileURL
NSLog(@"... loading for preview: %@", [fileURL lastPathComponent]);
FRNBDocument *doc = [[FRNBDocument alloc] initWithFileURL:fileURL];
[doc openWithCompletionHandler:^(BOOL success)
NSLog(@"... loaded for preview: %@", [doc.fileURL lastPathComponent]);
问题是有时需要 40 秒才能获得日志,而有时只需要几毫秒。这是 40 秒:
2012-06-27 13:58:31.612 Meernotes[4444:11303] ... loading for preview: NOTEBOOK-C759AD40-E6DE-4241-9E5A-22C458BEF8DA.MBOOK
2012-06-27 13:59:11.870 Meernotes[4444:11303] ... loaded for preview: NOTEBOOK-C759AD40-E6DE-4241-9E5A-22C458BEF8DA.MBOOK
这是几毫秒:
2012-06-27 14:02:50.829 Meernotes[4510:11303] ... loading for preview: NOTEBOOK-C759AD40-E6DE-4241-9E5A-22C458BEF8DA.MBOOK
2012-06-27 14:02:50.896 Meernotes[4510:11303] ... loaded for preview: NOTEBOOK-C759AD40-E6DE-4241-9E5A-22C458BEF8DA.MBOOK
为什么会这样?如何防止需要 40 秒?
编辑
我做了更多的测试。事实证明,这仅在加载本地文件时在模拟器中发生。有趣的是,我启动模拟器需要 40 秒。然后我再次启动模拟器,需要几毫秒。然后我再次启动模拟器,需要 40 秒。等等所以这实际上看起来像一个错误。我正在使用最新的 xCode 4.5 DP2,所以我想是时候提交错误了。
【问题讨论】:
您最终找到了解决方案还是提交了雷达?我遇到了同样的问题,这很烦人。 【参考方案1】:通常 iCloud 文件是按需下载的,因此如果您的文档在 iCloud 中并且从未打开过,则可能需要一段时间,这取决于您的互联网连接和文件大小:)
我注意到 iCloud 首次加载某些内容时比平时多花几秒钟时间。
最后,iCloud API 非常有问题。难怪在 ios5/OSX10.7 中很少有官方应用采用它。不过也不要太责怪苹果,毕竟这是他们的第一次迭代 :)
【讨论】:
猜你是对的。我已经更新了我的问题 - 这不是一个真正的问题,而是更多的错误报告。以上是关于为啥加载 UIDocument 需要 40 秒?的主要内容,如果未能解决你的问题,请参考以下文章
为啥一个 40 亿次迭代的 Java 循环只需要 2 毫秒?
处理包含多个图像的 UIDocument 中的图像加载/存储