在Mac OS X 10.5及更高版本中替代poseAsClass?

时间:2009-08-17 18:55:46

标签: cocoa deprecated

Apple已弃用OS X v10.5及更高版本的NSObject poseAsClass:方法。还有另一种让班级合法的方法吗?

3 个答案:

答案 0 :(得分:8)

我认为没有类级别的等价物,但你可以交换两种方法的实现,这通常是使用poseAsClass:的目的(当然,你可以交换多个方法,如果你需要覆盖一个类中的多个方法)。您希望Objective-C 2.0运行时(#import objc/runtime.h)中有method_exchangeImplementations。一句警告:在调用method_exchangeImplementations之后,调用'new'方法实际上调用了原始方法定义。

答案 1 :(得分:7)

Lap Cat提供了另一种选择。

答案 2 :(得分:2)

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