2011-10-05 112 views
0

我有一个应用程序与CoreData,我需要使用NSPredicate从一个城市检索所有联系人。NSPredicate with localizedCaseInsensitiveCompare

问题是,“城市”可能写成伦敦或伦敦甚至伦敦。用户将键入伦敦搜索,或LoNDon。

我需要的是将NSPredicate与localizedCaseInsensitiveCompare一起使用,以便检索所有记录。

代码:

request.predicate = [NSPredicate predicateWithFormat: 
         @"activityDeleted == %@ && (SUBQUERY(hasMembers, $sub, $sub.memberDeleted == %@)[email protected] > 0) && (SUBQUERY(hasMembers, $sub, $sub.city == %@)", 
         [NSNumber numberWithBool:NO], 
         [NSNumber numberWithBool:NO], 
         city]; 

以上NSPredicate检索所有有联系,而不是删除,是在某个城市的群体,但我有CASEINSENSITIVE问题...

我怎样才能去做?

感谢,

RL

回答

1

这里你不需要子查询。你的整个谓词可以代替:

@"activityDeleted == NO AND ANY hasMembers.memberDeleted = NO AND ANY hasMembers.city =[cd] %@", city 
+0

通过不使用SUBQUERY,我有性能问题。如果使用SUBQUERY,速度会非常快。 –