Не удалось привести значение типа '_SwiftValue' - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть код для добавления данных

for v_p_item in v_p!{
        print(v_p_item["nama"])
        let names = v_p_item["nama"]
        let vpids = v_p_item["id"]
        self.vpid.append(vpids as AnyObject)
        self.SList.append(names as AnyObject)
        self.srcVp.theme.bgColor = UIColor (red: 1, green: 1, blue: 1, alpha: 1)
        print(self.vpid)
        print(self.SList)
        self.srcVp.filterStrings(self.SList as! [String])
        self.srcVp.itemSelectionHandler = { filteredResults, itemPosition in
            // Just in case you need the item position
            let item = filteredResults[itemPosition]
            print("Item at position \(itemPosition): \(item.title)")
            print(self.idvp)

            // Do whatever you want with the picked item
            self.srcVp.text = item.title
            self.idvp = item.title
            self.srcVp.endEditing(true)
            print(self.idvp)
        }
    }

и у меня такая ошибка

Не удалось привести значение типа «_SwiftValue» (0x1050235f8) к «NSString» (0x103955568). 2019-04-12 13: 45: 03.552716 + 0700 mytelkomsat [10366: 196119] Не удалось привести значение типа '_SwiftValue' (0x1050235f8) до 'NSString' (0x103955568).

enter image description here

1 Ответ

0 голосов
/ 12 апреля 2019

Выполнение принудительного переноса на self.SList в строке self.srcVp.filterStrings(self.SList as! [String]) означает, что вы уверены, что объекты массива имеют тип String.

Тогда вы можете определить SList как:

    var SList = [String]() or, var SList: [String]? // initialize later on

И добавлять объекты как:

    if let names = v_p_item["nama"] as? String {
        self.SList.append(names)
    }

То же самое можно сделать для self.vpid в соответствии с типом данных, который он содержит.

...