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

标签 swift

将变量从 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/

相关文章:

ios - 尝试找出从 Firestore 字典中删除元素的更好方法

ios - 停止在第三个 ViewController 上播放音乐 - Swift 4

swift - AST 反序列化问题,输入不是 PCH 文件

swift - 如何将 Firebase 数据库快照与文本进行比较?

ios - 不同的 UITableViewCells 重叠

ios - 为什么 editActionsForRowAt 返回很多图像而不是一张图像?

Swift 检测碰撞和设置枚举

ios - SwiftUI View 未更新为 EnvironmentObject 更改

swift - 快速在标签中显示数组

ios - 如何使用prepareForDeletion快速删除CoreData中的照片?