抱歉超级noobie在这里试图编译这个,这是我试图解决的最后一个错误。
let optionalString0 = formatter.stringFromNumber(NSNumber(localNotification.userInfo!["pokemonId"]as! Int))
if optionalString0 != nil {
imagen.setImage(UIImage(named: optionalString0!))
答案 0 :(得分:0)
我认为错误是由于这句话:
NSNumber(localNotification.userInfo!["pokemonId"]as! Int)
我在游乐场尝试了这个以重现错误:
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))
}
答案 1 :(得分:0)
感谢大家的帮助和反馈!
这似乎适用于目前为止
如果让number = localNotification.userInfo?[“pokemonId”]为? NSNumber,让optionalString0 = formatter.string(from:number)为?字符串{
imagen.setImage(UIImage(named: optionalString0))
}