gpt4 book ai didi

swift - 无法为 'inout 类型的值添加下标 [AnyHashable : Any

转载 作者:行者123 更新时间:2023-11-30 12:08:57 24 4
gpt4 key购买 nike

抱歉, super 菜鸟试图编译这个,这是我试图修复的最后一个错误。

 let optionalString0 = formatter.stringFromNumber(NSNumber(localNotification.userInfo!["pokemonId"]as! Int))

if optionalString0 != nil {
imagen.setImage(UIImage(named: optionalString0!))

最佳答案

我认为错误是由于以下语句造成的:

NSNumber(localNotification.userInfo!["pokemonId"]as! Int)

我在 Playground 上尝试了这个来重现错误:

var dict = [1: "10", "t": 100] as [AnyHashable : Any]

func foo( paramDict: inout [AnyHashable : Any]) {


print(NSNumber(paramDict["t"] as! Int)) //getting the same error on this line
}

foo(paramDict: &dict)

在上面的代码中,我在 print 语句上遇到了相同的错误

我通过修改上面的代码解决了这个问题:

var dict = [1: "10", "t": 100] as [AnyHashable : Any]

func foo( paramDict: inout [AnyHashable : Any]) {

if let number = paramDict["t"] as? NSNumber {
print(number)
}

}


foo(paramDict: &dict)

因此,在您的情况下,您可以像这样修改代码:

if let number = localNotification.userInfo?["pokemonId"] as? NSNumber {
let optionalString0 = formatter.string(from: number)

if optionalString0 != nil {
imagen.setImage(UIImage(named: optionalString0!))
}

}

注意:您可以像这样修改上面的代码:(它与有问题的错误无关,只是编写上面代码的不同方式(可能更好))

if let number = localNotification.userInfo?["pokemonId"] as? NSNumber, let optionalString0 = formatter.string(from: number) as? String {

imagen.setImage(UIImage(named: optionalString0))

}

关于swift - 无法为 'inout 类型的值添加下标 [AnyHashable : Any,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46312402/

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