performSelector:withObject 仅在 iPad 上发送错误的对象

Posted

技术标签:

【中文标题】performSelector:withObject 仅在 iPad 上发送错误的对象【英文标题】:performSelector:withObject sending wrong object only on iPad 【发布时间】:2016-02-04 10:31:34 【问题描述】:

我在这样的目标上调用选择器:

        target.performSelector(successAction, withObject: timeIntervalPicker.timeInterval)

在此调用之前和之后,打印输出确认 timeInterval 是例如90.0

然而,被调用的方法会收到完整的垃圾。它收到的不是 90.0,而是 7.9616198705550417E+277

接收到的值也因调用而异。

为了让这更令人困惑,这只发生在 iPad 模拟器上。不在 iPhone 模拟器上。

非常感谢您的帮助。

【问题讨论】:

【参考方案1】:

使用您要发送的值创建一个NSNumber,并将收到的NSNumber 转换回其原始类型(双精度或时间戳):

target.performSelector(successAction, withObject: NSNumber(double: timeIntervalPicker.timeInterval))

【讨论】:

非常感谢。就是这样。我仍然不明白这只是 iPad 上的问题。

以上是关于performSelector:withObject 仅在 iPad 上发送错误的对象的主要内容,如果未能解决你的问题,请参考以下文章