私は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