Я столкнулся с ошибкой, чтобы поместить свой кортеж в NSArray.Невозможно преобразовать значение типа ... в тип
Мой код показан ниже.
var Name: [String] = []
var Requested: [String] = []
var Time: [String] = []
var Status: [String] = []
var filtered: [(process:String, requestor:String, creation:String, status:String)] = []
var allItems: [(process:String, requestor:String, creation:String, status:String)] = []
for i in 0...Name.count{
if(Name[safe: i] != nil && Requested[safe: i] != nil && Time[safe: i] != nil && Status[safe: i] != nil)
{
allItems += [(process:Name[i], requestor:Requested[i], creation:Time[i], status:Status[i])]
}
}
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text!)
let array = (allItems as NSArray).filteredArrayUsingPredicate(searchPredicate)
В этом случае я хотел использовать filterArrayUsingPredicate. Но я столкнулся
Невозможно преобразовать значение типа '[(процесс: String, запрашивающий: String, создание: String, статус: String)]' к типу 'NSArray' в принуждении
Может кто-нибудь скажет мне, почему я столкнулся с этой ошибкой?
Спасибо за ответ. Есть ли что-нибудь, что я могу использовать вместо NSArray? –
Нет, если вы настаиваете на вызове 'filterArrayUsingPredicate'. Это метод NSArray. – matt
Однако вы не просили альтернатив или других способов сделать то, что вы пытаетесь сделать. Вы даже не объяснили, что вы пытаетесь сделать. Ваш вопрос в том, почему вы получаете эту ошибку компилятора, и я сказал вам, правильно, почему это так. – matt