+ Core Dataを処理する作業 (学習) をUITableView
開始し、それについて何かを読み始めました。その後、ボタンを押すとデータが に表示される小さなサンプル アプリを書き始めましたtableView
。
私の問題は、正しくプログラムしたことです.Xcodeは警告やエラーなどを表示しませんが、機能しません.
このコードが機能しない理由を誰か教えてもらえますか?
プロジェクト: http://www.sendspace.com/file/ohc1kn
編集:設定しない場合:self.fetchedResultsController.delegate = nil;
次のエラーが表示されます。
2013-02-17 16:45:05.480 tableView+Coredata[1533:207] * -[UITableView _createPreparedCellForGlobalRow:withIndexPath:] でのアサーションの失敗、/SourceCache/UIKit_Sim/UIKit-1912.3/UITableView.m:6072 2013-02-17 16:45:05.481 tableView+Coredata[1533:207] CoreData: エラー: 重大なアプリケーション エラーです。-controllerDidChangeContent: の呼び出し中に、NSFetchedResultsController のデリゲートから例外がキャッチされました。UITableView dataSource は、tableView:cellForRowAtIndexPath: with userInfo (null) からセルを返す必要があります
コードを使用して NewObject を Database と TableView に挿入します。それを実行すると、上記のエラーが発生します。
// Create a new instance of the entity managed by the fetched results controller.
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
// If appropriate, configure the new managed object.
// Normally you should use accessor methods, but using KVC here avoids the need to add a custom class to the template.
[newManagedObject setValue:[NSDate date] forKey:@"timeStamp"];
// Save the context.
NSError *error = nil;
if (![context save:&error]) {
/*
Replace this implementation with code to handle the error appropriately.
abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
*/
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
}
- (UITableViewCell *)tableView: cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
[self configureCell:cell atIndexPath:indexPath];
return cell;
}