无法转换类型为“ _SwiftValue”的值

时间:2019-04-12 06:52:47

标签: swift search textfield

我有一些代码可添加数据

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 :(得分:0)

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所保存的数据类型,可以执行相同的操作。