0

私はXcode 4.2とiOS SDK 5.0とCore Dataを持つiPad用Appleのマスター詳細アプリケーションテンプレートを使用しています。これは "Locations"のサンプルコードに似ています。 MasterViewController(MVC)からDetailViewController(DVC)にマネージオブジェクトコンテキスト(MOC)を渡すことに成功しました。ディテール・ビュー・コントローラーは、いくつかのテキスト・ボックスでユーザーからの入力を受け取り、コア・データにそのテキストを保管します。この部分は魅力のように機能します。今、私は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; 

私は他の記事で見てきたし、AppDelegateからすべてのビューコントローラにMOCを渡すと方法かもしれないと思われますDVCのデータ入力がなぜ機能するのかを知りたかったのですが、AVCのデータを取り込むとクラッシュしました。私は何の偉大な誤りを作ったのですかhttps://github.com/scottdaniel/FlyPunnett/tree/coreDataWork

P.S.を:あなたはそれをチェックアウトしたい場合

ところで、私はgithubの上で、プロジェクト全体を置きます私はすべてのそれは大丈夫です、あなたはnoobのCocoaTouchプログラマ私を呼び出すことができ、私はおそらくいくつかの「良いプログラミング」の格言を壊してるのにだから私は、それを考え出したR

答えて

0

とのより良いよ...

MVCへのAVCから他のすべての接続と一緒に

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

を削除した(すなわち@class ActionViewController、@property * MCVインターフェイスでActionViewController)< <は、あなたがそれらをしたい場合は、完全な詳細については、私に尋ねるか、外にそれをチェックgithub(上のリンク)

は、その後、私はちょうど私のActionViewController.mに

#import AppDelegate.h 

を追加しましたので、同じよう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が正常に作成され、私はデータを取ることができますよユーザーはそれを誰にでも送信できる電子メールに入れます。

関連する問題