0

我正在使用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

回答

0

所以我想通了,雖然我可能打破一些「好節目」格言......

我所做的一切與來自AVC MVC的所有其他連接一起刪除

//Pass the MOC to the actionViewController 
_actionViewController.managedObjectContext = self.managedObjectContext; 

(即@class ActionViewController,@property *在MCV接口ActionViewController)< <問我的全部細節,如果你想他們或檢查出來的github(上面的鏈接)

然後,我只是說

#import AppDelegate.h 

我ActionViewController.m

並修改了MOC創造像這樣:

-(void)tableView:(UITableView *)tableView 
        didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
//Fetch the crosses 
NSManagedObjectContext *context = [(AppDelegate *)[[UIApplication 
            sharedApplication] delegate] 
            managedObjectContext]; 
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription 
           entityForName:@"Event" 
           inManagedObjectContext:context]; 

的MOC創建成功,我能夠把數據用戶並將其放入可發送給任何人的電子郵件中。

相關問題