亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將NSArray過濾到Objective-C中的新NSArray中

將NSArray過濾到Objective-C中的新NSArray中

Cats萌萌 2019-11-28 10:30:20
我有一個NSArray,我想NSArray用滿足特定條件的原始數組中的對象創建一個新對象。條件由返回的函數決定BOOL。我可以創建一個NSMutableArray,遍歷源數組,并復制過濾器函數接受的對象,然后創建它的不可變版本。有沒有更好的辦法?
查看完整描述

3 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

有很多方法可以做到這一點,但到目前為止,最肯定的方法是使用[NSPredicate predicateWithBlock:]:


NSArray *filteredArray = [array filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) {

    return [object shouldIKeepYou];  // Return YES for each object you want in filteredArray.

}]];

我認為這簡明扼要。


迅速:

對于那些工作NSArrayS IN斯威夫特,你可能更喜歡這種更簡潔的版本:


nsArray = nsArray.filter { $0.shouldIKeepYou() }

filter僅僅是Array(NSArray隱式橋接到Swift的Array)的方法。它帶有一個參數:一個閉包,它在數組中使用一個對象并返回Bool。在關閉時,只需返回true過濾數組中所需的任何對象即可。


查看完整回答
反對 回復 2019-11-28
  • 3 回答
  • 0 關注
  • 735 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號