我自动生成的数据包芯类NSManagedObject,和我所试图做的是为某个人显示所有电话号码。我试图在我的表视图类中显示这个来填充表。核心数据的NSSet问题
人到号码是一个一对多的关系,而数字是在一套我也由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 2012-03-14 02:19:56
因此,对于上面的代码,我假设你知道Person NSManagedObject的名称,你想从中得到数字,所以...假设你已经在前一个表格视图中点击了一个人,以便打开一个新的表格视图与他们的电话号码,你选择的人将具有名称属性。将其作为personName或其他名称传递到下一个表视图。使用该名称代替personName。 – theSpectre142 2012-03-14 16:21:23
Number NSManagedObject应该有一个引用返回给Person NSManaged对象,因此应该拥有一个person属性,以便这是来自哪里的人,然后.name是Person对象上的属性。 – theSpectre142 2012-03-14 16:23:37