I'm a somewhat competent ruby programmer. Yesterday I decided to finally try my hand with Apple's Cocoa frameworks. Help me see things the ObjC way?
I'm trying to get my head around
objc_registerClassPair. My goal is to dynamically generate a few classes and then be able to use them as I would any other class. Does this work in Obj C?
Having allocated and registered class
A, I get a compile error when calling
[[A alloc] init]; (it says
'A' Undeclared). I can only instantiate
A using runtime's
objc_getClass method. Is there any way to tell the compiler about
A and pass it messages like I would
NSString? A compiler flag or something?
I have 10 or so other classes (
C, …), all with the same superclass. I want to message them directly in code (
[B classMethod], …) without needing
objc_getClass. Am I trying to be too dynamic here or just botching my implementation? It looks something like this…
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.
© Stack Overflow or respective owner