Objective-C运行时

fer*_*nyb 6 runtime objective-c

Objective-C运行时参考说:

下面的"已弃用"表示"在Mac OS X 10.5版中不推荐使用32位代码,不允许使用64位代码."

我想在Max OS X版本10.5中使用class_setSuperclass,即使我仍然可以这样做,编译器会发出警告,告诉我它已被弃用但它仍然构建并且Bundle仍然可用.

我的问题是Max OS X 10.5中的等价物是什么?

Bry*_*ore 5

猜测使用它可能不是一个好主意.我知道随着向64位的转变,运行时中的一些事情发生了变化并且没有替代品.

文档甚至明确表示不要触摸,并且不会例外.

但是,您可以使用class_addMethod向给定的预先存在的类添加功能.但是,这也可以通过类别来实现.

您也可以使用class_replaceMethod覆盖方法,另一种可能的方法是使用类别(或class_addMethod)来添加替换方法.然后使用method_exchangeImplementations你可以交换它们,以便原来仍然可以调用.

总的来说,虽然大部分都是有点黑暗的伏都教,除非你很满意并且愿意经常测试,否则我会寻找另一种设计.