是否可以创建方法和变量,在Objective-C中在运行时设置它们?

时间:2014-03-29 21:37:41

标签: objective-c objective-c-blocks objective-c-runtime objective-c-category

例如:

@implementation MyClass{
    NSNumber *something;
}

我希望能够在运行时向特定对象(仅一个实例)添加其他一些,而不是整个类。他们已经有指向其他对象的指针,我需要MyClass才能使用它们。

用例就是这样。我在另一个实例中,称之为A,我有一些变量和方法,我想将变量和方法注入B,执行方法并将它们分离,因此对象B是原始的。

*在方法的情况下,我最好不要class_addMethod它,并且更愿意将实现发送到对象A以自己执行它。

1 个答案:

答案 0 :(得分:0)

您可以使用关联对象(请参阅objc_setAssociatedObject()和相关函数),但在运行时添加ivars是一种相当罕见的做法。你想要完成什么?