如何在Objective-C中动态地向类添加方法?

时间:2011-12-18 23:01:19

标签: objective-c objective-c-runtime

我理解Objective-C相对于C ++的一个主要优点是它能够向对象发送消息而不是调用其方法。其次,您可以动态地向对象添加方法。

假设这是我的对象:

@interface MyClass : NSObject
{}

- sayHello;

@end

我知道即使未定义- sayGoodbye,下面的代码也能正常工作,但有人可以完成此代码并演示Objective-C如何在运行时向对象添加方法吗?

MyClass* o = [[MyClass alloc] init];

[o sayHello  ];
[o sayGoodbye];
[o release   ];

1 个答案:

答案 0 :(得分:2)

目标c运行时参考是您需要的:

Objective-C Runtime Reference

特别注意以下方法:class_addMethod