我認爲錯誤是由於這樣的說法:
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))
}
請提供更多有問題的代碼和錯誤的全文。 – chb
請接受答案,如果它解決了你的問題 – 3stud1ant3