3

コアデータにデータを追加するときに関係が確立されているかどうかをどのように確認しますか? 現在、2 つのエンティティ間にTO MANYの関係があります。

詳細ビューを作成しようとしていますが、苦労しています。関係が確立されていないためなのか、データを新しいビューコントローラーに渡すことに問題があるのか​​ わかりません。

ここに画像の説明を入力

次のコードを使用して、コア データ エンティティにデータを追加しています。両者の関係を確立するとき、これは正しいように見えますか?

ExcerciseInfo *info = [_fetchedResultsController objectAtIndexPath:indexPath];
NSManagedObject *routineEntity = [NSEntityDescription insertNewObjectForEntityForName:@"Routines"inManagedObjectContext:context];
NSManagedObject *routineEntityDetail = [NSEntityDescription insertNewObjectForEntityForName:@"RoutinesDetails" inManagedObjectContext:context];
    
[[routineEntityDetail valueForKey:@"name"] addObject:routineEntity];
    
[routineEntity setValue: info.name  forKey:@"routinename"];
[routineEntityDetail setValue: info.details.muscle  forKey:@"image"];
   
NSError *error = nil;

エラー調査:

提案された方法の 1 つを使用しましたが、コア データで生成された NSObject 関係モデルであるNSLog(@"ExTitle *** %@",Ex.routinedet);routinedet で関係をテストしたときに、まだこの障害が発生しています。@property (nonatomic, retain) NSSet *routinedet;

Relationship 'routinedet' fault on managed object (0x749ea50) <Routines: 0x749ea50> (entity: Routines; id: 0x749c630 <x-coredata://C075DDEC-169D-46EC-A4B7-972A04FCED70/Routines/p1> ; data: {
    routinedet = "<relationship fault: 0x8184a20 'routinedet'>";
    routinename = "Leg Crunch";

また、セグエが機能していることを確認するためにテストしました。

self.title = Ex.routinename;
RoutinesDetails *info;
NSLog(@"Image *** %@",info.image);

タイトルを正しい名前として表示しますが、画像文字列を null として返します。

4

2 に答える 2