Cocoa Mac OS X 10.5及更高版本中poseAsClass的替代方案?

Cocoa Mac OS X 10.5及更高版本中poseAsClass的替代方案?,cocoa,deprecated,Cocoa,Deprecated,苹果已经弃用了NSObject在OS X v10.5及以上版本中的方法。有没有其他方法可以让类摆姿势工作?给出了另一种方法。我认为没有类级别的等价物,但您可以交换两种方法的实现,这通常是使用poseAsClass:(当然,如果需要重写一个类中的多个方法,可以交换多个方法)。警告一句:在调用method_ExchangeImplements之后,调用“new”方法实际上调用了原始的方法定义。你想做什么?摆姿势通常有很多方法。不过,我承认,有时候这是唯一的方法:)谢谢!我结合了mcandre的答案和

苹果已经弃用了
NSObject
在OS X v10.5及以上版本中的方法。有没有其他方法可以让类摆姿势工作?

给出了另一种方法。

我认为没有类级别的等价物,但您可以交换两种方法的实现,这通常是使用
poseAsClass:
(当然,如果需要重写一个类中的多个方法,可以交换多个方法)。警告一句:在调用method_ExchangeImplements之后,调用“new”方法实际上调用了原始的方法定义。

你想做什么?摆姿势通常有很多方法。不过,我承认,有时候这是唯一的方法:)

谢谢!我结合了mcandre的答案和您链接到的文档,成功地实现了这一点。简要说明:为了使用您描述的方法,我必须
#包括“objc/runtime.h”
。我正在尝试跟踪Cocoa应用程序中的所有绑定(和解除绑定)消息。每当在一个对象和另一个对象之间进行绑定时,我想要
NSLog()
一些调试信息。最后,我在
NSObject
的绑定方法上使用了
method\u exchangeimplements
,它成功了。听起来你做得不错:)我会小心在运输代码中使用它。