使用 CoreData 请求
Posted
技术标签:
【中文标题】使用 CoreData 请求【英文标题】:Request with CoreData 【发布时间】:2011-06-27 13:04:47 【问题描述】:这是我的问题:
我的 CoreData 模型有两个实体:玩家和结果。玩家的重要属性是: - ratingTypePlayer,它是一个字符串。 - resultsPlayer,它是一个以结果为目标的太多关系。反向关系是 playerResult。
我希望获得一个包含所有玩家结果的数组,其中 ratingTypePlayer 等于“Toto”。我找不到这种例子。
非常感谢
【问题讨论】:
【参考方案1】:你的意思是,像一个获取请求?
NSManagedObjectContext *context = [[NSApp delegate] managedObjectContext];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:[NSEntityDescription entityForName:@"Player" inManagedObjectContext:context]];
[request setPredicate:[NSPredicate predicateWithFormat:@"ratingTypePlayer == %@", @"Toto"]];
NSArray *players = [context executeFetchRequest:request error:nil];
如果你想要一组“resultsPlayer”关系,你可以这样做:
NSArray *results = [players valueForKey:@"resultsPlayer"];
【讨论】:
谢谢。实际上“NSArray *results = [players valueForKey:@"resultsPlayer"];”返回一个数组数组(每个玩家及其结果的数组),所以我必须在 for 循环中编写一个 for 循环以获得完整的结果列表。以上是关于使用 CoreData 请求的主要内容,如果未能解决你的问题,请参考以下文章
CoreData请求(Fetch Request)中断言(NSPredicate)使用的一个误区
使用 CoreData 如何配置获取请求以查找即将到来的生日?
CoreData 与来自 GCD 队列的 AFNetworking 请求不兼容?