无法将'string'类型的值转换为预期的参数类型[Any]

时间:2017-04-27 20:44:42

标签: swift

将textfield.text中的变量添加到NSMutableArray时出现以下错误。

无法将'string'类型的值转换为预期的参数类型[Any]

    let itemsObjects = UserDefaults.standard.object(forKey: "items")

    var items:NSMutableArray

    if var items = itemsObjects as? NSMutableArray {

    items.addObjects(from: (textField.text!))

    }

不应该键入任何包含类型字符串?

谢谢,

1 个答案:

答案 0 :(得分:0)

不要在Swift中使用NSMutable...集合类型

与不可变类型不同,它们与Swift对应物无关,不能相互桥接。此外,他们击败了斯威夫特强大的类型系统。

UserDefaults有一个专门的方法来获取数组,var关键字使对象在Swift中可变。 textField.text是单个对象,相应的API为append

if let itemsObjects = UserDefaults.standard.array(forKey: "items") {
    var items = itemsObjects
    items.append(textField.text!)
}