【发布时间】:2011-04-17 23:27:01
【问题描述】:
给定以下核心数据模型:
-> : to-one releationship
->>: to-many relationship
Entity A ->> Entity B
Entity B -> A // each B belongs to exactly one A
Entity B ->> B // a B can be related to other B's
所以在课堂上A:
@property (nonatomic, retain) NSSet *Bs;
在课堂B:
@property (nonatomic, retain) A *A;
@property (nonatomic, retain) NSSet *Bs;
假设我有一个包含(Bj, Bk) 的NSArray *myArray。
我想要的是获取所有属于Ax并与Bj和Bk相关的B:
下面的代码可以工作,但非常难看,因为我必须根据数组中B 的数量(这里是 2,但可能是 10 左右)对 NSPredicate 进行硬编码:
NSEntityDescription *fetchedEntity = [NSEntityDescription entityForName:@"B" inManagedObjectContext:self.managedObjectContext];
[NSPredicate predicateWithFormat:@"A == %@ and (Bs contains %@) and (Bs contains %@)", Ax, [myArray objectAtIndex:0], [myArray objectAtIndex:1]];
如何重写谓词使其更通用?一定很明显,但我就是没看到...
【问题讨论】:
标签: iphone objective-c core-data nspredicate