swift:使用NSPredicate过滤NSMutableDictionary的NSMutableArray

时间:2015-12-17 04:59:40

标签: ios swift nspredicate

以下是字典数组:

    {
DATA: [
{

GAMEID: 509782,
FIELDNUMBER: "KPB #1",
},
{

GAMEID: 509782,
FIELDNUMBER: "KPB #1",
},
{

GAMEID: 509782,
FIELDNUMBER: "KPB #1",

},
{...

现在我想根据GAMEID过滤数组。为此,我创建了一个循环,内部使用NSPredicate。以下是我的代码:

    func callSort(arr:NSMutableArray) -> NSMutableDictionary {
        var arrId = arr.valueForKey("GAMEID")
        for(index, ele) in arrGames.enumerate() {
            let str = ele.valueForKey("GAMEID")
            let pred = NSPredicate(format: "ANY DATA.GAMEID == %@", argumentArray: str) // error on this line
            var filterArr =  arrGames.filteredArrayUsingPredicate(pred)

        }

        return sortedDict
    }

我得到的错误是:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse function name 'Optional:' into supported selector (Optional:)

我不确定我是否正确使用NSPredicate

我哪里出错了?我该如何解决这个问题?

已编辑的代码

let pred = NSPredicate(format: "GAMEID = %d", argumentArray: [str!])

            var filterArr = arrGames.filteredArrayUsingPredicate(pred)

1 个答案:

答案 0 :(得分:0)

您好我在目标c中解决了这个问题我有相同的JSON格式你可以参考这个Searching NSArray of NSDictionary objects答案吗?我用它来搜索功能希望这会帮助你