Arp*_*rum 2 core-data nspredicate ios
有一个核心数据对象foo 与另一个核心数据对象"bar"具有多对多关系.这bar具有barid类型的属性int32.
我有一个由NSNumbers代表的NSArray(让我们把它命名intlist).我有一个foo对象.
我需要知道有多少bar与此foo实例相关的对象barid包含在内intlist.
我想我可以使用谓词.但是我的谓词应该采用什么格式?在SQL中它会SELECT count(*) FROM fooBarLinkTable WHERE fooid = x AND barid IN intlist,但我不知道如何将该语句转换为谓词.
我相信你有一个反向关系bar < - > foo,那intlist是NSArray的类型或NSNumber对象的NSSet.如果是,请执行以下操作:
NSFetchRequest* request = [NSFetchRequest fetchRequestWithEntityName:@"bar"];
[request setPredicate:[NSPredicate predicateWithFormat:@"barid IN %@ && ANY relationshipToFoos == %@", intlist, foo]];
NSError* error = nil;
NSUInteger count = [[self.fetchedResultsController managedObjectContext] countForFetchRequest:request error:&error];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1209 次 |
| 最近记录: |