我正在尝试加载 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,所以我想是时候提交错误了。
最佳答案
通常 iCloud 文件是按需下载的,因此,如果您的文档位于 iCloud 中并且之前从未打开过,则可能需要一段时间,具体取决于您的互联网连接和文件大小:)
我注意到 iCloud 第一次加载某些内容时比平时多花费了几秒钟。
最后,iCloud API 的 bug 实在是太多了。难怪为什么很少有官方应用程序在 iOS5/OSX10.7 中采用它。但不要过多责怪苹果,毕竟这是他们的第一次迭代:)
关于iphone - 为什么 UIDocument 需要 40 秒才能加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226892/