【发布时间】:2013-02-02 15:57:22
【问题描述】:
我有这个问题,我想不出如何写这个谓词。
我有一个名为 Contact 的实体,假设它有一个字符串属性“pages”
contact.pages = @"1,5,11,15,17";
我的数据库中有很多联系人,我只想获取这些包含特定 ID 的联系人。所以假设我只想获取这些联系人,哪些页面包含 id @"1"。
我能想到这样的事情,
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"self.pages CONTAINS %@", _pageId];
但我的问题是这也会获得联系人,例如有 pages = @"11,15"。
那么关于如何实现这一目标的任何想法? 如有任何建议,我将不胜感激,在此先感谢!
【问题讨论】:
-
实际上这个字符串是这样形成的,我有一个 id 数组,我用:[idArray componentsJoinedByString:@","];所以如果我的 id 在最后一个位置,这是行不通的,是吗?编辑:或者如果这个字符串只有一个对象,它也不会工作
-
你可以使用数组的值并按 ids 而不是按页面过滤吗?
-
好吧,我真的不知道,这些所谓的页面实际上是其他 coreData 实体的 id。我还有一个名为 page 的实体。这些联系人属于多个页面。此联系人所属页面的列表以逗号分隔的字符串形式显示。我有办法实现这一点,通过所有联系人,并将这个字符串分成一个数组,但这需要很长时间,我想通过使用谓词来实现。
标签: ios objective-c core-data nspredicate nsfetchrequest