私が作っているiPhoneアプリに問題があります。私はxcdatamodelにTeamとCameraという2つのエンティティを持っています。各チームにはカメラがあり、すべてのカメラはチームに属します。私は正しくチームエンティティをナビゲーションベースのアプリケーションに実装しているので、チームビューを追加することができます。しかし、公開ボタンをクリックしてチームのカメラエンティティに電話をかけて写真を撮って保存すると、アプリがクラッシュします。コアデータの詳細表示で問題が発生する
ここでは、Cameraエンティティに関連するRootViewController.mのコードを示します。
-(void)insertCameraWithTeam:(NSManagedObject *)team picture:(NSString *)picture {
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSManagedObject *camera = [NSEntityDescription insertNewObjectForEntityForName:@"Camera" inManagedObjectContext:context];
[camera setValue:picture forKey:@"picture"];
}
#pragma mark -
#pragma mark Table view data source
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
NSManagedObject *team = [self.fetchedResultsController objectAtIndexPath:indexPath];
CameraDetailView *cameraDetailView = [[CameraDetailView alloc] initWithRootController:self team:team];
[self.navigationController presentModalViewController:cameraDetailView animated:YES];
[cameraDetailView release];
}
"initWithRootControllerが..." 私のCameraDetailView.mでこのように実装されています
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
が呼び出されたときに
-(id)initWithRootController:(RootViewController *)aRootController team:(NSManagedObject *)aTeam /*camera:(NSManagedObject *)aCamera*/ {
if ((self = [super init])) {
self.rootController = aRootController;
self.team = aTeam;
}
return self;
}
あり、エラーが発生します。
誰かが私が間違っていることを知っていますか?
どのようにクラッシュしますか?あなたの質問にクラッシュログを含めると、あなたを助けることがずっと簡単になります。 – jrturton
あなたのコメントは私自身のXDで問題を解決するのを助けてくれました。デバッガは一般的なSIGABORTの他に何も与えていないので、問題のあるメソッドをtry/catchブロックに置き、NIBが正しく配線されていないことを発見しました。ご意見ありがとうございます。次回はオリジナルの投稿にクラッシュログを含めることを忘れないでください! – Egdod