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 上发送错误的对象的主要内容,如果未能解决你的问题,请参考以下文章