使用 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 如何配置获取请求以查找即将到来的生日?

CoreData 与来自 GCD 队列的 AFNetworking 请求不兼容?

使用 CoreData 而不是仅仅通过 get 请求获取数据并将其保存在局部变量中的原因

CoreData 通过抽象托管对象获取请求到具体托管对象