我有一個從API我建立檢索數據的應用程序。檢索完數據後,它將數據填入UITableView。
內部我的HTTP請求我有以下的代碼,其中檢索到的數據保存到數組:
var dta = []
if let parseJSON = self.son {
self.dta = parseJSON
}
之後我創建的檢索功能,如下所示:
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
// if let id = dta["caseStudyTitle"] as? String
filtered = dta.filter({ (text) -> Bool in
//if let id = Summary["caseStudyTitle"] as? String
let tmp = text as! NSString
let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch)
print("THIS IS TEXT \(text)")
return range.location != NSNotFound
})
if(filtered.count == 0){
searchActive = false;
} else {
searchActive = true;
}
self.tableView.reloadData()
}
的誤差
運行上面的代碼後,我得到以下錯誤:
Could not cast value of type '__NSCFDictionary' (0x10ef45c) to 'NSString' (0x460444).
在該行:
let tmp = text as! NSString
的數據結構
下面是JSON數據的結構中,DTA變量包含此數據。
[
{
"_id":"qweqwqw",
"caseStudyTitle":"Title",
"caseStudyLink":"link",
"sector":"sec one",
"__v":0
},
{
"_id":"qweqwqw",
"caseStudyTitle":"Title",
"caseStudyLink":"link",
"sector":"sec one",
"__v":0
},
{another object},
{another object} ]
比賽結束
我希望能夠過濾被顯示在UITableView的數據。 如果用戶在搜索欄中鍵入內容,則UITableView會使用過濾的數據重新加載。
此外,我只需要搜索案例研究標題&部門領域。
如果您需要更多的信息才能解決此問題,請告訴我。
你想過濾器根據標題或JSON對象的屬性? – Caleb
@Caleb過濾器基於標題和扇區。只有那兩個領域。 – Skywalker
我會建議在JSON對象中爲數據創建一個類。稍後過濾和我們會更容易。如果你不想這樣做,你可以用'let tempTitle = text [「caseStudyTitle」]來訪問標題和扇區! String'。 – Caleb