performSelector:withObject 仅在 iPad 发送错误的对象
performSelector:withObject sending wrong object only on iPad
我这样调用目标上的选择器:
target.performSelector(successAction, withObject: timeIntervalPicker.timeInterval)
在此调用之前和之后打印输出确认 timeInterval 是例如90.0
然而,被调用的方法接收到完整的垃圾。它收到的不是 90.0,而是 7.9616198705550417E+277
收到的值也因调用而异。
更令人困惑的是,这只发生在 iPad 模拟器上。不在 iPhone 模拟器上。
非常感谢您的帮助。
使用您要发送的值创建一个 NSNumber
,并将收到的值 NSNumber
转换回其原始类型(双精度或时间戳):
target.performSelector(successAction, withObject: NSNumber(double: timeIntervalPicker.timeInterval))
我这样调用目标上的选择器:
target.performSelector(successAction, withObject: timeIntervalPicker.timeInterval)
在此调用之前和之后打印输出确认 timeInterval 是例如90.0
然而,被调用的方法接收到完整的垃圾。它收到的不是 90.0,而是 7.9616198705550417E+277
收到的值也因调用而异。
更令人困惑的是,这只发生在 iPad 模拟器上。不在 iPhone 模拟器上。
非常感谢您的帮助。
使用您要发送的值创建一个 NSNumber
,并将收到的值 NSNumber
转换回其原始类型(双精度或时间戳):
target.performSelector(successAction, withObject: NSNumber(double: timeIntervalPicker.timeInterval))