On Jan 13, 2009, at 3:33 PM, Jean-Daniel Dupas wrote:
he is just talking about class name, not class.
NSClassFromString() is probably what you're looking for.
NSMutableString *clsName = derive class name from the entry.
Class cls = NSClassFromString(clsName);
id<YouProtocol> instance = [[cls alloc] init];
I'll just add the following:
If you don't need such complete flexibility -- for example, if you're
selecting from a fixed set of classes by some tag -- then you don't
need to compute a class name and look up the class that way.
Classes are objects and so they can be stored in collections. For
example, you could have a lookup dictionary that mapped from keys to
class objects. You would construct the dictionary like this:
[NSDictionary dictionaryWithObjectsAndKeys:
[SomeClass class], "key1",
[OtherClass class], "key2",
[ThirdClass class], "key3",
// ... etc.
nil];
This adds a small amount of safety in the same way that statically-
specified stuff generally does. For example, the compiler will catch
typos in class names.
Cheers,
Ken
_______________________________________________
Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to arch...@mail-archive.com