学习使用 coreData。目前正在看斯坦福的CS193P Lecture 14,很有帮助。我已经使用 ManagedDocument 成功设置了一个具有核心数据持久性的工作应用程序。
每次应用启动时都会运行以下代码。我的困惑是:我们怎么知道文档的 url 是正确的?它怎么知道“lastObject”总是保存文档的 URL?
if (!myManagedDocument) {
NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
url = [url URLByAppendingPathComponent:@"theDatabase"];
myManagedDocument = [[UIManagedDocument alloc]initWithFileURL:url];
}
下面的代码将打开文档,如果之前没有保存过,则创建/保存它。
if (![[NSFileManager defaultManager] fileExistsAtPath:[myManagedDocument.fileURL path]]) {
[myManagedDocument saveToURL:myManagedDocument.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL sucess) {
[self getInfoFromDatabase];
}];
} else if (myManagedDocument.documentState == UIDocumentStateClosed) {
[myManagedDocument openWithCompletionHandler:^(BOOL sucess) {
[self getInfoFromDatabase];
}];
} else if (myManagedDocument.documentState == UIDocumentStateNormal) {
[self getInfoFromDatabase];
}