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

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

使用NSPredicate根據NSDictionary鍵過濾NSArray

使用NSPredicate根據NSDictionary鍵過濾NSArray

繁花不似錦 2019-11-08 10:55:44
我有很多字典。我想根據一個鍵過濾數組。我嘗試了這個:NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT ==  %@)", @"Football"];NSArray *filteredArray = [data filteredArrayUsingPredicate:predicate];這行不通,我沒有結果。我想我做錯了。我知道如果“ SPORT”是ivar,這就是方法。我認為如果是密鑰,可能會有所不同。我還沒有找到一個例子。謝謝更新資料我在要搜索的字符串周圍加了引號。NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT ==  '%@')", @"Football"];它仍然不起作用。更新2解決了。實際上,我不得不刪除單引號,這似乎與指南中所說的背道而馳。我的真正問題是我有一個嵌套數組,而我實際上并沒有評估字典。骨頭移動。
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

它應該工作-只要數據變量實際上是一個包含帶有鍵SPORT的字典的數組


NSArray *data = [NSArray arrayWithObject:[NSMutableDictionary dictionaryWithObject:@"foo" forKey:@"BAR"]];    

NSArray *filtered = [data filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(BAR == %@)", @"foo"]];

在這種情況下過濾包含字典。


查看完整回答
反對 回復 2019-11-08
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

#import <Foundation/Foundation.h>

// clang -framework Foundation Siegfried.m 

    int

main() {

    NSArray *arr = @[

        @{@"1" : @"Fafner"},

        @{@"1" : @"Fasolt"}

    ];

    NSPredicate *p = [NSPredicate predicateWithFormat:

        @"SELF['1'] CONTAINS 'e'"];

    NSArray *res = [arr filteredArrayUsingPredicate:p];

    NSLog(@"Siegfried %@", res);

    return 0;

}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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