我在覈心數據/ NSFetchedResultsController中遇到了一些問題。由於消息非常模糊,我不能完全確定錯誤的位置。核心數據/ NSFetchedResults控制器錯誤
我有一個插入多個對象的問題,當提取的結果控制器沒有獲取對象時。下面的代碼會崩潰,如果我嘗試插入幾個對象而沒有提取已經。如果我使用它插入一個對象,它不會崩潰,如果已經有對象被提取,它不會崩潰。
崩潰發生在save:方法上。標題在NSArray中,在本例中它包含5個字符串。
嚴重的應用程序錯誤。指數(4)以外 界限(1)與用戶信息(NULL) *終止應用程序由於未捕獲的異常 'NSRangeException',原因: - [NSCFArray objectAtIndex:] *:異常 核心數據變化 處理期間被抓: '*** - [NSCFArray objectAtIndex:]: 指數(4)超過界限(1)'
NSEnumerator *titleEnumerator = [titles objectEnumerator];
NSString *title;
NSMutableArray *tasks = [NSMutableArray array];
Todo *todo;
while(title = [titleEnumerator nextObject])
{
todo = (Todo *)[NSEntityDescription insertNewObjectForEntityForName:@"Todo" inManagedObjectContext:managedObjectContext];
todo.title = title;
todo.state = [NSNumber numberWithInteger:TodoStateIncomplete];
todo.priority = [NSNumber numberWithInteger:TodoPriorityNormal];
todo.timeStamp = [NSDate date];
todo.dueDate = [NSDate distantFuture];
}
NSError *error;
if(![managedObjectContext save:&error])
{
NSLog(@"Unresolved error %@ %@", error, [error userInfo]);
abort();
}
我已經設法避開碰撞帶着幾分狡猾的黑客。在循環中,我檢查它是否是第一次。如果是我保存。這就好像我剛剛添加一個對象,以防止在添加多個對象時崩潰。這會讓我感動,但我仍然想知道爲什麼會發生這種情況,所以我可以正確地修復它。 – 2010-01-08 11:05:26