我创建了一个运行时类,然后将一个实例调配为该新类的一个实例。
MyClass *object = [MyClass new];
Class subclass = objc_allocateClassPair([MyClass class], "MyClass_RuntimeClass", 0);
objc_registerClassPair(subclass);
object_setClass(object, subclass);
这工作正常。swizzling 后,我可以调用 MyClass 上定义的方法和设置属性。
唯一的问题是调试器不再显示对象的属性。
Apple 似乎已经通过他们的 KVO 运行时类克服了这个问题。
我尝试使用 class_addProperty 在新类上添加属性,但这失败了,因为它们已经定义了。
有什么我想念的吗?