Using NSPredicate to determine if a string equals another string

岁酱吖の 提交于 2019-11-27 17:07:22

问题


I have an NSArray of CalEvents returned with the [CalCalendarStore eventPredicateWithStartDate] method. From the events returned, I am trying to keep only those in which the title of the event == @"on call" (case-insensitive).

I am able to keep in the array those events whose title includes @"on call" with the following code (where 'events' is a 'NSArray' populated with CalEvents):

NSPredicate *onCallPredicate = [NSPredicate predicateWithFormat:@"(SELF.title CONTAINS[c] 'on call')"];
[events filteredArrayUsingPredicate:onCallPredicate];

I've tried using a predicate format string like:

@"SELF.title == 'on call'" but this doesn't seem to work.

Is there an easier way to do this?


回答1:


Try [NSPredicate predicateWithFormat:@"title ==[c] 'on call'"];

(The [c] makes the equality comparison case-insensitive.)




回答2:


Try predicate with format @"self.title like[c] 'on call'". The following sample code outputs 2 strings:

NSArray* ar = [NSArray arrayWithObjects:@"on call", @"I'm on call", @"lala", @"On call", nil];
NSArray* filt = [ar filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self like[c] 'on call'"]];
NSLog([filt description]);

//Output
"on call",
"On call"


来源:https://stackoverflow.com/questions/2967400/using-nspredicate-to-determine-if-a-string-equals-another-string

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!