我在Xcode(swift)中遇到此错误:
无法将“NSTaggedPointerString”类型的值(0x1a1264378)转换为“NSNumber”(0x1a126f900)。
我明确了错误的位置//错误:(“...”)
代码:
std::shared_ptr
答案 0 :(得分:1)
您正在将String
保存到NSUserDefaults
,然后您正在阅读NSNumber
。这是不可能的,这就是错误信息所说的内容。
NSUserDefaults
具有处理整数的专用方法
集:
Swift 1和2:
defaults.setInteger(2, forKey: "GetMute")
Swift 3:
defaults.set(2, forKey: "GetMute")
defaults.synchronize()
通常不需要。
得到:
Swift 1和2:
welkmute = defaults.integerForKey("GetMute")
Swift 3:
welkmute = defaults.integer(forKey:"GetMute")
两个注释:
valueForKey
作为对象。它是NSUserDefaults
。objectForKey
而不是Int
)。