将变量从 textfield.text 添加到 NSMutableArray 时出现以下错误。
无法将“字符串”类型的值转换为预期参数类型 [Any]
let itemsObjects = UserDefaults.standard.object(forKey: "items")
var items:NSMutableArray
if var items = itemsObjects as? NSMutableArray {
items.addObjects(from: (textField.text!))
}
不应该输入 Any include 类型 String 吗?
谢谢,
最佳答案
不要在 Swift 中使用 NSMutable...
集合类型。
与不可变类型不同,它们与 Swift 对应类型无关,并且不能相互桥接。此外,他们还击败了 Swift 的强类型系统。
UserDefaults
有一个专门的方法来获取数组,var
关键字使对象在 Swift 中可变。 textField.text
是单个对象,相应的 API 是 append
if let itemsObjects = UserDefaults.standard.array(forKey: "items") {
var items = itemsObjects
items.append(textField.text!)
}
关于swift - 无法将类型 'string' 的值转换为预期的参数类型 [Any],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43667582/