私は最初のIOSアプリケーションを作成し、データの取得と保存にJSONとコアデータを使用しています。
しかし、何らかの理由でそれは開かないでしょうNSDocument
。これが私がしていることです。
- (void)useDocument
{
if (![[NSFileManager defaultManager] fileExistsAtPath:[self.genkDatabase.fileURL path]]) {
// does not exist on disk, so create it
[self.genkDatabase saveToURL:self.genkDatabase.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) {
NSLog(@"test1");
[self setupFetchedResultsController];
NSLog(@"test12");
[self fetchFlickrDataIntoDocument:self.genkDatabase];
}];
} else if (self.genkDatabase.documentState == UIDocumentStateClosed) {
NSLog(@"test2");
// exists on disk, but we need to open it
[self.genkDatabase openWithCompletionHandler:^(BOOL success) {
NSLog(@"test4");
[self setupFetchedResultsController];
NSLog(@"test5");
}];
} else if (self.genkDatabase.documentState == UIDocumentStateNormal) {
NSLog(@"test3");
// already open and ready to use
[self setupFetchedResultsController];
}
}
- (void)setupFetchedResultsController // attaches an NSFetchRequest to this UITableViewController
{
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"News"];
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"News.title" ascending:YES]];
// no predicate because we want ALL the Photographers
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:self.genkDatabase.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
NSLog(@"test10");
}
私のログを見ると、次のことがわかります。
テスト2テスト4テスト10テスト5
ご覧のとおり、正常に開きます。次に、メソッドを実行しsetupFetchedResultsController
ます。しかし、その後突然停止します。エラーは発生しません。
通常は、fetchFlickrDataIntoDocument
メソッドに移動する必要があります。
誰か助けてくれませんか?