【发布时间】:2014-01-27 08:51:24
【问题描述】:
我实际上是 iPhone 编程的新手,并且已经成功创建了一个应用程序,但我不知道如何检索存储在 NSSet 中的值。我在彼此相关的核心数据中有 2 个实体。用户一对多得分。 Users 实体具有 firsNname 和 lastName 属性,Scores 实体具有 onTime、wasAbsent 和 dateIn 属性。我使用基于 firstName 和 lastName 的谓词进行提取,然后执行提取。获取成功,我能够在一次获取调用中获取两个实体。但是,我无法从 Scores 实体中获取值。无论我做什么,它总是返回 NSSet 对象。我想要做的是检索存储在 onTime 和 wasAbsent 属性中的布尔值并将它们提供给 UISwitch。
AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
self.managedObject = delegate.managedObjectContext;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Student"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"firstname == %@ AND lastname == %@", @"James", @"Smith"];
NSError *error = nil;
self.scoresArray = [self.managedObject executeFetchRequest:fetchRequest error:&error];
if ([self.scoresArray count]) {
Student *student = [self.scoresArray objectAtIndex:0];
NSSet *score = student.scores;
NSArray *arr = [score allObjects];
NSLog(@"%@", [arr objectAtIndex:0]);
}
如果我可以直接访问 Score 实体而不是使用 NSSet,那将是理想的方式,我可以使用点符号来引用它。 任何帮助,将不胜感激。谢谢
【问题讨论】: