On Jul 19, 2008, at 9:27 AM, Uli Kusterer wrote:
On 19.07.2008, at 13:03, Jean-Daniel Dupas wrote:
Because "one" don't now that "Class" are just NSObject and can be use like any other objects.


Yeah, if the sample code really is like it's actually implemented, and it wasn't simplified for posting, just placing the result of [NSlass class] into an array would be a better idea.

That said, I've implemented plugin schemes where plugin authors put the class names as strings in plist files and then we used NSClassFromString() to get the class the plugin developer requested. That's effectively what NSApplication and NSBundle do when you ask for the application class/main class to use.

I can't speak for Nathaniel -- maybe an array of classes is indeed the right solution -- but it's not so hard to imagine a situation where you have class names that you need to convert to classes. Uli just gave an example. I do it in my own app (I have a configuration plist that contains class names). There's also a little thing called Interface Builder that stores class names in xib files.

Just to clarify a couple of earlier replies: if the array had contained class objects in the first place (using [ClassOne class], [ClassTwo class], etc.), you wouldn't need to send a +class message in the ??????? part of the code; you can just use the class object directly.

    Class myClass = [NSString class];
NSObject *s = [[myClass alloc] init]; // don't have to say [myClass class]

--Andy



Of course, stuff like that is a tad dangerous if you have to fear some other people feeding you malicious class names, so don't use NSClassFromString([NSString stringWithFormat: @"NS [EMAIL PROTECTED]",currentHTMLTagName]) to implement your web browser unless you want to cope with people creating NSXMLElements for you to get your browser to crash... :-)

Cheers,
-- Uli Kusterer
"The Witnesses of TeachText are everywhere..."
http://www.zathras.de
_______________________________________________

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 [EMAIL PROTECTED]

Reply via email to