【发布时间】:2010-11-20 08:36:09
【问题描述】:
Apple 已弃用 OS X v10.5 及更高版本的 NSObject 的 poseAsClass: 方法。还有其他方法可以让课堂摆姿势工作吗?
【问题讨论】:
标签: cocoa deprecated
Apple 已弃用 OS X v10.5 及更高版本的 NSObject 的 poseAsClass: 方法。还有其他方法可以让课堂摆姿势工作吗?
【问题讨论】:
标签: cocoa deprecated
我不认为有类级别的等价物,但是可以交换两个方法的实现,这通常是使用poseAsClass:的目的(当然,如果需要,您可以交换多个方法覆盖一个类中的多个方法)。您希望在 Objective-C 2.0 运行时 (#import objc/runtime.h) 中使用 method_exchangeImplementations。警告一句:在调用method_exchangeImplementations之后,调用'new'方法实际上调用了原来的方法定义。
【讨论】:
#include "objc/runtime.h" 才能使用您描述的方法。
你想做什么?摆姿势通常有很多方法。不过,我会承认,有时这是唯一的方法:)
【讨论】:
NSLog() 一些调试信息。我最终在NSObject 的绑定方法上使用了method_exchangeImplementations,它成功了。
Lap Cat 提供了另一种选择。
【讨论】: