我的iPhone應用程序正在發生一些奇怪的事情。我正在使用Core Data將數據存儲在SQLite數據庫中。在我的應用程序啓動後第一次嘗試讀取表來返回所有行以填充UITableView以及用戶可供選擇的事物列表。如果他們選擇列表中的頂部項目,我會得到一個EXC_BAD_ACCESS異常。如果他們選擇任何其他物品,一切都好。以下是代碼示例:Sport和Team是NSManagedObjects。運動是使用NSFetchedResultsController(fetchedObjects)獲取的Sport對象的NSArray。我可以在UITableView中顯示微小物體的列表(我用的是同一個數組中的cellForRowAtIndexPath()調用沒有任何問題EXC_BAD_ACCESS ManagedObjects(核心數據)的NSArray
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Sport *sport = (Sport *)[sports objectAtIndex:indexPath.row];
if (teamSetup) {
if (team.sport != sport) {
[team setSport:sport]; <-- this is where the EXC_BAD_ACCESS happens
NSError *error;
[team.managedObjectContext save:&error];
}
[self.navigationController popViewControllerAnimated:YES];
} else {
// .. do some other stuff
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
更新:它似乎隻影響在NSArray中的最後一條記錄,而不是第一直到它拋出EXC_BAD_ACCESS錯誤再次重新啓動應用程序後,問題消失,代碼按預期工作:(