Core Data と UIManagedDocuments の使用方法を学ぼうとしています。まず、ドキュメントを作成/開きます。
NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
url = [url URLByAppendingPathComponent:@"ProjectSSBDB"];
document = [[UIManagedDocument alloc] initWithFileURL:url];
if ([[NSFileManager defaultManager] fileExistsAtPath:[url path]])
{
[document openWithCompletionHandler: ^(BOOL success)
{
if (success) [ProjectSSViewController documentIsReady];
if (!success) NSLog(@"Couldn't open document at %@", url);
}];
}
else
{
[document saveToURL:url forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success)
{
NSLog(@"Returned %d", success);
if (success) [ProjectSSViewController documentIsReady];
if (!success) NSLog(@"Couldn't create document at %@", url);
}];
}
次に、ドキュメントが作成されて正常に開かれたら、次のようにします。
if (document.documentState == UIDocumentStateNormal)
{
NSManagedObjectContext *context = [document managedObjectContext];
Exercise *exercise = (Exercise *) [NSEntityDescription insertNewObjectForEntityForName:@"Exercise" inManagedObjectContext:context];
}
ここの最後の行は、「+entityForName: nil は、エンティティ名「Exercise」を検索する正当な NSManagedObjectContext パラメータではありません」というエラーを表示する行のようです。
「演習」エンティティを持つデータ モデルを確実に作成しました。私が行った読書から、それは異なるスレッドがコンテキストと相互作用する方法と関係があるのでしょうか? しかし、私にはよくわかりません。どんなガイダンスでも素晴らしいでしょう!