【发布时间】:2014-05-07 00:08:24
【问题描述】:
我的 Xcode 项目中有一个相当复杂的核心数据模型。为简单起见,我在这里只说我的模型包括与 Teams 有一对多关系的 Games,每个 Teams 与 Players 有一对多关系。所有这三个实体也都有自己的属性(例如,gameLocation、teamScore、playerNumber 等)。
由于 Restkit 向 Ruby on Rails 构建的网站发出的大量 GET 请求,我的数据库已完全填充。所以现在,我想开始处理这些数据——显示和修改它。我知道这涉及获取请求和谓词,但我不知道何时何地需要执行这些获取。我可以获取一个游戏,然后从该游戏中访问与该游戏相关的所有内容吗?例如,这是我获取今天安排的所有游戏的代码:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *desc = [NSEntityDescription entityForName:@"Game" inManagedObjectContext:self.managedObjectContext];
[request setEntity:desc];
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"time" ascending:YES];
[request setSortDescriptors:@[sort]];
/*** some code that determines the values for variables 'todaysDate' and 'tomorrowsDate' ***/
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date < %@)", todaysDate, tomorrowsDate];
[request setPredicate:predicate];
NSError *error = nil;
self.games = [self.managedObjectContext executeFetchRequest:request error:&error];
但是现在呢?访问这些游戏的团队的最佳方式是什么?我需要更多获取请求还是效率低下?我试过这样的东西,但它似乎不对
Game *game1 = [self.games objectAtIndex:0];
NSMutableSet *game1Teams = [game1 mutableSetValueForKey:@"gameTeams"];
不仅是球队,我如何获得这些比赛球队的分数?那些游戏的玩家?等等……
(也许参考教程或一些示例代码对我来说是个好地方,因为我确信这是微不足道的东西)
【问题讨论】:
标签: ios core-data restkit nspredicate nsfetchrequest