gpt4 book ai didi

Swift - Xcode 9.4.1 - AnyObject 不是 NSArray 的子类型

转载 作者:行者123 更新时间:2023-11-28 05:54:07 25 4
gpt4 key购买 nike

以下代码在两年前可以正常工作。

Xcode 更新后出现“AnyObject 不是 NSArray 的子类型”错误。谁能帮我修好它?

override func viewWillAppear(_ animated: Bool) {
if let storednoteItems : AnyObject = UserDefaults.standard.object(forKey: "noteItems") as AnyObject? {
noteItems = []
for i in 0 ..< storednoteItems.count += 1 {
// the above line getting Anyobject is not a subtype of NSArray error
noteItems.append(storednoteItems[i] as! String)
}
}
}

最佳答案

你根本不应该在 Swift 中使用 AnyObjectNSArray 作为值类型。并且您不应该注释编译器可以推断的类型。

UserDefaults 有一个专门的方法 array(forKey 来获取数组。您的代码可以简化为

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) // this line is important. Don't forget to call super.
if let storednoteItems = UserDefaults.standard.array(forKey: "noteItems") as? [String] {
noteItems = storednoteItems
}
}

并将noteItems声明为

var noteItems = [String]()

如果您指定循环的类型,那么循环中的任何类型转换都是不必要的。

关于Swift - Xcode 9.4.1 - AnyObject 不是 NSArray 的子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51980079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com