在嵌套对象中按字符串过滤NSArray

时间:2013-10-22 14:18:17

标签: ios arrays xcode filter nsarray

我有一个需要过滤的对象数组。我知道我应该使用NSPredicate,但似乎找不到通过对象中的字符串过滤,在另一个对象内部的答案。

以下是数组的单个对象:

{
    "data_center"
    {
        "id":1,
        "site_id":17,
        "name":"Building",
        "shortname":"ORL-Building",
        "created_at":"2011-10-28T06:32:39Z",
        "updated_at":"2011-10-28T06:32:39Z",
        "site":
        {
            "id":17,
            "name":"Orlando",
            "shortname":"ORL"
        }
    }
}

如何使用嵌套对象中的Site.name过滤数组?数组本身是一个NSArray,它需要filteredArrayUsingPredicate:。

此外,我找到过滤数组的数据的方法是从UIPickerView中提取,所以我必须检索从不同的pickerview使用的对象,并根据字符串过滤第二个数组网站名称。

我似乎无法找到一个好的答案,如果有人有任何建议我会非常感激。

1 个答案:

答案 0 :(得分:3)

谓词可以使用键路径导航到数据结构,因此您可以执行以下操作:

@"data_center.site.name LIKE %@", name

您还可以使用enumerateObjectsUsingBlock:来构建您感兴趣的项目列表。