У меня есть функция, которая возвращает мне массив AnyObject:Невозможно присвоить значение типа AnyObject к значению типа String,
public func xmppRosterDidEndPopulating(sender: XMPPRoster?) {
let jidList = OneChat.sharedInstance.xmppRosterStorage.jidsForXMPPStream(OneChat.sharedInstance.xmppStream)
contacts = jidList
}
и у меня есть массив: var contacts = [AnyObject]()
Позже я хочу запустить свою функцию поиска среди этих значений:
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
filtered = contacts.filter({ (text) -> Bool in
let tmp: NSString = text as! NSString
let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch)
return range.location != NSNotFound
})
if(filtered.count == 0){
searchActive = false;
} else {
searchActive = true;
}
self.tableView.reloadData()
}
но он возвращает мне ошибку:
Cannot assign a value of type AnyObject to a value of type String
в
filtered = contacts.filter({ (text) -> Bool in
, как я могу решить эту проблему?
Какой тип 'jidList'? Постарайтесь быть как можно более конкретными, 'AnyObject' является эквивалентом' id' в Objective-C, он не указан. – vadian
Это 'AnyObject' type –
Да, но что это на самом деле? Кажется, это массив 'String'. Если это так, объявьте 'контакты' как' [String]() 'и down down' jidList' следующим образом: 'contacts = jidList as! [String] '. Это может решить множество проблем. – vadian