iphone - 为什么 UIDocument 需要 40 秒才能加载?

标签 iphone objective-c icloud uidocument

我正在尝试加载 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/

相关文章:

iphone - 通过试飞了解 iOS 崩溃报告

iphone - 从 UIViewController 推送 Tabbarcontroller

android - 将我的开发者帐户 token 用于与 CloudKit Web 服务交互的 Android 用户

ios - 核心数据堆栈与 iCloud 应用程序上的托管文档

iphone - static T const 和 static const T 的区别

ios - 我们如何在 iPhone 中检测人脸

iphone - 在 imageView.tag 中存储 25 位数字字符串

ios - iOS 6 上未配置 iCloud 状态

iPhone:使用反射替换函数

objective-c - indexOfObject 与 indexOfObjectIdenticalTo