【发布时间】:2012-09-15 11:09:22
【问题描述】:
我有一个非常奇怪的问题,过去两天我一直在试图解决...我有一段代码在 Xcode 4.4 和 iOS 5.1 模拟器上运行良好,使用 5.1 SDK。在我更新到 Xcode 4.5 和 6.0 SDK 后,我的代码在 iOS 5.1 模拟器中停止工作......即使它在 iOS 6.0 模拟器中运行得非常好。有什么我不知道的变化吗?
这是代码:
- (void)useDocument
{
if (![[NSFileManager defaultManager] fileExistsAtPath:[self.database.fileURL path]]){
[self.database saveToURL:self.database.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success){
[self setupFetchedResultsController];
}];
} else if (self.database.documentState == UIDocumentStateClosed){
[self.database openWithCompletionHandler:^(BOOL success){
[self setupFetchedResultsController];
}];
} else if (self.database.documentState == UIDocumentStateNormal) {
[self setupFetchedResultsController];
}
}
由于某种原因,saveToURL 和 openWithCompletionHandler 在 5.1 模拟器中永远不会返回。有谁知道为什么?
【问题讨论】:
-
很高兴我找到了你的问题,因为我遇到了完全相同的问题,只是发现这似乎是 5.1 模拟器的问题。我猜你的代码也是基于斯坦福 2011 年的课程(方法 'useDocument' 暗示了它)。
-
是的,我的 UIManagedDocument 设置是对 Paul 代码的复制和粘贴。唯一的区别是添加了对轻量级迁移的支持的几行代码。
-
我遇到了同样的问题。您是否找到任何解决此问题的方法?谢谢!
-
还没有,但是正如其他人提到的,如果您在设备上运行它,它将正常工作。出于某种原因,如果我使用 Xcode 从设备运行,我仍然会遇到问题,所以我必须安装应用程序(使用 TestFlight)。
-
你们安装Xcode 4.5.1了吗?对我来说,这个错误似乎仍然存在:模拟器 5.0 和 6.0 工作,但在模拟器 5.1 上仍然没有调用完成处理程序。
标签: ios xcode core-data xcode4.5 uimanageddocument