ios - NSPredicate多层次响应

标签 ios objective-c uisearchbar nspredicate

我的回应就像;

{

Writers : [

{

    "name": "Mad Decent Block Party NYC", 
    "artist": [
        {
            "artist_name": "Dillon Francis", 
            "name": "Dillon Francis", 
            "Books" : ["Book1", "Book2", "Book3"]
        }, 
        {
            "artist_name": "Major Lazer", 
            "name": "Major Lazer", 
            "Books" : ["Book4", "Book5", "Book6"]
        }, 
        {
            "artist_name": "Flosstradamus ", 
            "name": "Flosstradamus",
            "Books" : ["Book7", "Book8", "Book9"] 
        }
    ],  
},{

    "name": "Kaskade Atmosphere Tour NYC", 
    "artist": [
        {
            "artist_name": "Ryan Raddon", 
            "name": "Kaskade", 
            "Books" : ["Book1", "Book2", "Book3"]
        }
    ], 
},
]

}

我想搜索Artist数组的每个字典上的Books数组。当文本匹配时,结果应该是来自writers数组的dict对象以及匹配的book对象。

例如,我搜索的是Book1,结果应如下所示:
Writers : [

{

    "artist": [
        {
            "artist_name": "Dillon Francis", 
            "name": "Dillon Francis", 
            "Books" : ["Book1", "Book2", "Book3"]
        }, 
    ],  
    "name": "Mad Decent Block Party NYC", 
},{

    "artist": [
        {
            "artist_name": "Ryan Raddon", 
            "name": "Kaskade", 
            "Books" : ["Book1", "Book2", "Book3"]
        }
    ], 
    "name": "Kaskade Atmosphere Tour NYC", 
},
]

最佳答案

您只需要为此编写两行代码。您形成一个谓词,并用该谓词过滤writers数组。

您可以在谓词中使用键路径,并检查book数组是否包含给定的书名。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY artist.Books contains[cd] 'Book1'"];
NSArray *arr = [responseDict[@"Writers"] filteredArrayUsingPredicate:predicate];

这应该工作。

关于ios - NSPredicate多层次响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33119441/

相关文章:

iphone - 检测 UIView 子类中的自转

ios - 完成后 AVPlayer 前进到下一个流 URL

ios - UISearchController - Objective C 到 Swift 问题

ios - UISearchController 的 UISearchBar 在事件时移出屏幕

ios - iOS 7 上的矩形 UISearchBar

ios - 为什么我可以在 iPhone 和 iPad 上构建我的应用程序,甚至可以在 Xcode 中为 "iPhone"设置设备?

ios - 使用 NSKeyValueObservation 观察 UserDefaults 中的值

ios - dismissViewControllerAnimated() 不会关闭 View Controller

objective-c - 如何知道对象地址是否为 0x0?

ios - 核心数据 TableView 异常崩溃