我正在使用Xcode 4.2和iOS SDK 5.0以及蘋果公司的iPad核心數據主 - 細節應用模板。它與「位置」示例代碼類似。我成功設法將管理對象上下文(MOC)從MasterViewController(MVC)傳遞到DetailViewController(DVC)。詳細視圖控制器在某些文本框中接受來自用戶的輸入並將其存儲在覈心數據中;這部分工作就像一個魅力。現在,我有一個ActionViewController(AVC),它是一個Popover View,它應該允許用戶通過電子郵件發送MOC中的所有數據(如果他們選擇的話)。然而,當試圖做一個抓取時,我得到一個SIGABRT。我用的斷點,以查明確切位置:當執行fetchRequest時獲取SIGABRT
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Fetch the crosses
NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event"
inManagedObjectContext:context];
[fetchRequest setEntity:entity]; // Where it crashes
//Other code }
而且,在調試器我看到*上下文指針爲0x0,我猜意味着它不存在?
我做出了MVC通過MOC是這樣的方式:
// Pass the managedObjectContext to the DetailViewController as a property
_detailViewController.managedObjectContext = self.managedObjectContext;
//Pass the MOC to the actionViewController
_actionViewController.managedObjectContext = self.managedObjectContext;
我已經看了其他職位,似乎傳遞MOC所有視圖控制器從AppDelegate中可能的方式但我想知道爲什麼數據輸入適用於DVC,但是在AVC中讀取數據時會崩潰。我犯了什麼大錯誤?
順便說一句,我把整個項目在GitHub上,如果你想看看:https://github.com/scottdaniel/FlyPunnett/tree/coreDataWork
附:這沒關係,你可以叫我一個小白CocoaTouch程序員,我是更好的爲R