iOS謂詞篩選

先用一個(gè)便于理解的方法, 表達(dá)出想要的結(jié)果

首先說一下需要的數(shù)據(jù)

(根據(jù)城市的名字, 城市的拼音, 城市的首字母篩選是否有查找的城市)

ZHCity模型 模型中有name(城市名字), pinYin(城市的拼音), pinYinHead(城市首字母)

一個(gè)可變的數(shù)組(屬性): self.resultCities

一個(gè)正常的思路

self.resultCities = [NSMutableArray array];
                
                for (ZHCity *city in self.cities)
                {
                    // 城市的name中包含了searchText
                    // 城市的pinYin中包含了searchText
                    // 城市的pinYinHead中包含了searchText
                    if ([city.name containsString:searchText] || [city.pinYin containsString:searchText] || [city.pinYinHead containsString:searchText])
                    {  
                        [self.resultCities addObject:city];  
                    }  
                }

下面用一個(gè)新知識(shí)點(diǎn)解決上面的問題
謂詞\過濾器: 利用一定條件從一個(gè)數(shù)組中過濾出想要的數(shù)據(jù)


                
                // 這個(gè)有點(diǎn)類似sql語句
                NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains %@ or pinYin contains %@ or pinYinHead contains %@", searchText, searchText, searchText]; // name\pinYin\pinYinHead不是隨便寫的, 是模型中的屬性; contains是包含后面%@這個(gè)字符串
                self.resultCities = [self.cities filteredArrayUsingPredicate:predicate]; // 這個(gè)self.resultCities可以是一個(gè)不可變數(shù)組
                
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,914評(píng)論 18 139
  • OC的理解與特性 OC作為一門面向?qū)ο蟮恼Z言,自然具有面向?qū)ο蟮恼Z言特性:封裝、繼承、多態(tài)。它既具有靜態(tài)語言的特性...
    克魯?shù)吕?/span>閱讀 458評(píng)論 0 0
  • 就像我之前說的,釣魚對(duì)小時(shí)候的我來說是一種莫大的樂趣。當(dāng)然不是用你想象的那種專業(yè)的釣魚工具,那多沒意思! 我們的工...
    6ab665a250b5閱讀 303評(píng)論 0 0
  • 01 最近,因老板名下的兩家公司合資并股,人力資源部門和團(tuán)隊(duì)重新整合,工作職能有了較大變化,加之人手不夠,工作一直...
    靜待花開的聲音閱讀 1,378評(píng)論 6 17