CoreDataを使用して選択した行の詳細を表示するつもりはありませんが、なぜ「BAD_ACCESS」エラーが発生するのかわかりません。私は周りをgoogledして、私が探しているものを見つけることができません。CoreData DetailTableView BAD_ACCESSエラー
基本的にCoreDataを使用して、テーブルビューのデータを設定します。すべてのエンティティのすべてのタイトル属性を取得します。ユーザーが行をクリックすると、そのエンティティの説明を表示する必要がある詳細ビューが表示されます。私は、新しいNSManagedObjectContextとDetailViewControllerの新しいNSFetchRequestのための新しいNSEntityDescriptionを作成し、NSPredicateを使って "where title = [user selected title]"と言う必要があると思います。私は行を選択するとエラーが発生します。コードを参照してください:
- (void)viewDidLoad
{
// Do any additional setup after loading the view from its nib.
// Get the objects from Core Data database
Caregiver_Activity_GuideAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"Definition"
inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(title = %@)", self.title];
[request setPredicate:pred];
NSError *error;
NSArray *objects = [context executeFetchRequest:request error:&error];
if (objects == nil) {
NSLog(@"There was an error!");
// Do whatever error handling is appropriate
}
for (NSManagedObject *oneObject in objects) {
[definitionDescriptionTextView setText:[oneObject valueForKey:@"desc"]];
}
[objects release];
[request release];
[super viewDidLoad];
}
私はそのコードをすべてコメントします。しかし、ブレークポイントでデバッグしようとすると、何もキャッチしません。だから私はもっと混乱している。
私はCoreDataがおそらく私がやっていることに対して過度のものだと知っていますが、これは私のための学習アプリです。
EDIT:エンティティにあらかじめ入力されているsqliteデータベースを使用しています。
my github pageでプロジェクトをダウンロードすることもできます。
問題が見つかりました。私がいなくていいはずの物体を解放していた。 A非常にいい アップルデベロッパフォーラムのApple従業員は、私にはメモリ管理がわからず、私に標準的な800ページのApple Dev Memory Managementドキュメントへのリンクを教えてくれた。 –
Miles
Apple Devフォーラムの別のユーザーから、より良い回答が得られました:「違反は、この場合、あなたがいないはずの状況で呼び出していることです.Xcodeであなたに何を伝えたいかあなたのプロジェクトのクリーンなビルドを行い、 "Build&Analyze"オプションを使用してください。すべて正常に動作すれば、元のメッセージに投稿した方法に関する少なくとも1つの青いアイコンメッセージが表示されます。 私は彼に答えのポイントを与え、彼に感謝しました。 – Miles