2
我想學習如何使用謂詞,因此我試圖取代filteredArrayUsingPredicate以下工作代碼...幫助創建使用謂詞filteredArrayUsingPredicate
[filteredLocations removeAllObjects];
for (NSString *location in locations) {
NSRange range = [location rangeOfString:query options:NSCaseInsensitiveSearch];
if (range.length > 0) {
[filteredLocations addObject:location];
}
}
相反,我想....
[filteredLocations removeAllObjects];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains %@", searchText];
[filteredLocations addObjectsFromArray: [locations filteredArrayUsingPredicate:predicate]];
我沒有得到與謂詞相同的結果,因爲我用循環rangeOfString。以字符串的範圍爲例,searchText返回一個8項數組,而具有相同的值的數組只返回2個謂詞。另一個例子,hono會在locations數組中找到檀香山,而使用謂詞找不到任何東西。
據我所知,SELF代表被評估的對象對象,即。 locations數組,所以我認爲這是正確的語法。
任何幫助,將不勝感激
謝謝,約翰
感謝該訣竅! – user278859 2010-06-13 05:43:37