我是一个有点称职的红宝石程序员。昨天我决定最终尝试使用 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.