如何在Core-Data实体和属性的基础上搜索搜索栏

时间:2017-08-03 12:58:34

标签: ios swift api core-data searchbar

通过触发API,我得到一个标题列表,我将其存储在一个数组中,如此...

self.arr1.updateValue(user, forKey: "title") and
self.sampleArray.append(self.arr1["title"] as! String)

现在sampleArray拥有我需要的所有标题,我需要根据这些标题进行过滤。我的coredata模型有一个名为Posts的实体,属性contenttitle

另外,目前这就是我过滤的方式..

    filtered = sampleArray.filter({ (text) -> Bool in
                let tmp: NSString = text as NSString
                let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive)
                return range.location != NSNotFound
            })

这里,sampleArray只有一个名称列表,这些名称被添加到名为' filtered'的数组中。但问题是,在单击一行时,我们使用segue转到webview,并且webview在段落中有一些内容。单击每一行显示带有不同数据的webview。通过上面的这个过滤,当我点击过滤后得到的行时,显示的webview数据不正确。换句话说,我无法弄清楚如何传递正确的数组,以便显示正确的webview内容。

我的实体'帖子'具有属性' title'和'内容'。如果我可以过滤帖子然后从中获取标题,那么我想我也可以获得内容。但我无法弄清楚如何做到这一点。

2 个答案:

答案 0 :(得分:0)

点击过滤结果后,适当的内容是什么意思?通常,您可以使用 filteredArrayUsingPredicate 过滤器方法过滤值列表。

答案 1 :(得分:0)

在基于托管对象数组进行搜索时,您只是根据属性进行搜索。试试这种格式...

filtered = self.arrayOfYourManagedObjectType.filter { ($0.title?.lowercased().contains(searchText.lowercased()))! }