Ios 在核心数据中使用UIManagedDocument的标准(或正确)方法是什么
我正在通过斯坦福德CS193P学习iOS,我在核心数据部分遇到了一个问题 我正在尝试使用核心数据构建一个应用程序,我为AppDelegate创建了一个类别(我将在didFinishLaunchingWithOptions中创建一个UIManagedDocument),该类别实现一个方法来创建UIManagedDocument并将其返回给AppDelegate,这样我就可以调用self.managedDocument=[self-createUIManagedDocument]来获取一个:Ios 在核心数据中使用UIManagedDocument的标准(或正确)方法是什么,ios,objective-c,core-data,uimanageddocument,cs193p,Ios,Objective C,Core Data,Uimanageddocument,Cs193p,我正在通过斯坦福德CS193P学习iOS,我在核心数据部分遇到了一个问题 我正在尝试使用核心数据构建一个应用程序,我为AppDelegate创建了一个类别(我将在didFinishLaunchingWithOptions中创建一个UIManagedDocument),该类别实现一个方法来创建UIManagedDocument并将其返回给AppDelegate,这样我就可以调用self.managedDocument=[self-createUIManagedDocument]来获取一个: - (
- (UIManagedDocument *)createUIManagedDocument
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *documentsDirectory = [[fileManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] firstObject];
NSURL *url = [documentsDirectory URLByAppendingPathComponent:APP_NAME];
UIManagedDocument *managedDocument = [[UIManagedDocument alloc] initWithFileURL:url];
if ([[NSFileManager defaultManager] fileExistsAtPath:[url path]]) {
// If the file exists, open it
NSLog(@"File exists, not opening...");
[managedDocument openWithCompletionHandler:^(BOOL success) {
NSLog(@"File opened.");
}];
} else {
// If the file not exists, create it
NSLog(@"File not exists, now creating...");
[managedDocument saveToURL:url forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) {
// If the file create succesfully, open it
[managedDocument openWithCompletionHandler:^(BOOL success) {
NSLog(@"File opened.");
}];
}];
}
return managedDocument;
}
创建UIManagedDocument后,我尝试使用以下方式将此UIManagedDocument传递给我的视图控制器:
RootViewController *rootViewController = (RootViewController *)self.window.rootViewController;
rootViewController.managedDocument = self.managedDocument;
出现问题时,我无法在视图控制器中打开UIManagedDocument。我搜索了一整天,得到了答案:我试图同时打开它两次,但它是异步的,处理IO请求需要时间。有一些方法,其中大多数使用单例
我的问题是:
感谢您审阅我的问题。在本课程中,我们被告知使用通知进行此操作,他在第13课51:20的演示中解释了这一点。谢谢Lorenzo!我现在正在使用MagicalRecord。这是一个答案-问题涉及到一个非常具体的在线课程(提问者和回答者显然都在学习),并指出课程材料中提供的解释非常有用。