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))