我是一个有点称职的红宝石程序员。昨天我决定最终尝试使用 Apple 的 Cocoa 框架。帮我看看 ObjC 的方式?
我正在努力解决objc_allocateClassPair
问题objc_registerClassPair
。我的目标是动态生成一些类,然后能够像使用任何其他类一样使用它们。这在 Obj C 中有效吗?
分配和注册类A
后,调用时出现编译错误[[A alloc] init];
(它说'A' Undeclared
)。我只能A
使用运行时的objc_getClass
方法进行实例化。有什么方法可以告诉编译器A
并像我一样传递消息NSString
吗?编译器标志或什么?
我有 10 个左右的其他类 ( B
, C
, ...),它们都具有相同的超类。我想[A classMethod]
在[B classMethod]
不需要objc_getClass
. 我是想在这里过于活跃还是只是搞砸了我的实施?它看起来像这样……</p>
NSString *name = @"test";
Class newClass = objc_allocateClassPair([NSString class], [name UTF8String], 0);
objc_registerClassPair(newClass);
id a = [[objc_getClass("A") alloc] init];
NSLog(@"new class: %@ superclass: %@", a, [a superclass]);
//[[A alloc] init]; blows up.