私はコアデータNSManagedObjectクラスを自動生成しました。私がしようとしているのは、特定の人物のすべての電話番号を表示することです。私はテーブルを作成するために私のテーブルビュークラスにこれを表示しようとしています。コアデータNSSetの問題
Person to Numbersは1対多の関係であり、数字はaddNumbersObjectメソッドで行ったセットに含まれています。私はちょうどfetchresultscontrollerでこれをフェッチしてテーブルビューに表示する方法を理解していません。
現在、私はすべての人をフェッチしています。
アイデアや提案はありますか?
コアデータクラス:
@class Number
@interface Person : NSManagedObject
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSSet *numbers;
@end
@interface Person (CoreDataGeneratedAccessors)
- (void)addNumbersObject:(Number *)value;
- (void)removeNumbersObject:(Number *)value;
- (void)addNumbers:(NSSet *)values;
- (void)removeNumbers:(NSSet *)values;
@end
表ビュークラス:
- (NSFetchedResultsController *)fetchedResultsController
{
if (_fetchedResultsController != nil)
return _fetchedResultsController;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:_context];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:_context sectionNameKeyPath:nil cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
[fetchRequest release];
[theFetchedResultsController release];
return _fetchedResultsController;
}
これはうまくいきません、person.name =%@ "、personNameについて説明できますか?personNameは利用できません。 ? – Vikings
それで、上のコードでは、あなたが数字から欲しいPerson NSManagedObjectの名前を知っていると仮定しています。だから...新しいテーブルビューを開くために前のテーブルビューの人をタップしていたとしますあなたが選択した人には名前のプロパティがあります。それをpersonNameなどの次のテーブルビューに渡します。personNameの代わりにそれを使用します。 – theSpectre142
番号NSManagedObjectは、Person NSManagedオブジェクトへの参照を戻す必要があります。そのため、人がどこに由来するかというようにpersonプロパティを持ち、.nameがPersonオブジェクトのプロパティです。 – theSpectre142