Thanks for the input everyone.

For those curious, this is the final code:
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString 
*)filename
{
        NSError *err = nil;
        NSString *utiFile = [[NSWorkspace sharedWorkspace] typeOfFile:filename 
error:&err];
        if (err) {
                NSRunAlertPanel(NSLocalizedString(@"Error opening file",nil), 
[NSString stringWithFormat:NSLocalizedString(@"Unable to open %@: %@", nil), 
[filename lastPathComponent], [err localizedFailureReason]], nil, nil, nil);
                return NO;
        }
        NSArray *handlers = [NSArray arrayWithObjects:[PcsxrPluginHandler 
class], [PcsxrMemCardHandler class], [PcsxrFreezeStateHandler class], 
[PcsxrDiscHandler class], nil];
        BOOL isHandled = NO;
        for (Class fileHandler in handlers) {
                NSObject<PcsxrFileHandle> *hand = [[fileHandler alloc] init];
                BOOL canHandle = NO;
                for (NSString *uti in [fileHandler supportedUTIs]) {
                        if ([[NSWorkspace sharedWorkspace] type:utiFile  
conformsToType:uti]) {
                                canHandle = YES;
                        }
                }                       
                if (canHandle) {
                        isHandled = [hand handleFile:HandleBinCue(filename)];
                }
                [hand release];

        }
        return isHandled;
}


On Dec 18, 2011, at 12:22 PM, Charles Srstka wrote:

> You can just send the alloc/init message directly to the class object.
> 
> Charles
> 
> On Dec 18, 2011, at 11:01 AM, C.W. Betts wrote:
> 
>> Let me see if I got this right. Create an NSArray with classes like this:
>> [NSArray arrayWithObjects:[ClassName1 class], [ClassName2 class], nil]
>> Then how would I call it? Would [[[anArray objectAtIndex:i] alloc] init] 
>> work? Or would I have to use a pure C method, something along the lines of 
>> getIdFromClass()?
>> On Dec 18, 2011, at 2:20 AM, Charles Srstka wrote:
>> 
>>> On Dec 18, 2011, at 3:14 AM, Ken Thomases wrote:
>>> 
>>>> On Dec 18, 2011, at 3:06 AM, Charles Srstka wrote:
>>>> 
>>>>> On Dec 18, 2011, at 2:49 AM, Ken Thomases wrote:
>>>>> 
>>>>>> On Dec 18, 2011, at 2:36 AM, Charles Srstka wrote:
>>>>>> 
>>>>>>> On Dec 18, 2011, at 2:31 AM, C.W. Betts wrote:
>>>>>>> 
>>>>>>>> So I would do something along the lines of [NSArray 
>>>>>>>> arrayWithObjects:ClassName1, ClassName2, nil]?
>>>>>>> 
>>>>>>> Or just class1, class2, etc. where class1 and class2 are both of type 
>>>>>>> Class.
>>>>>> 
>>>>>> You can use pointers to class objects, but you can't just use class 
>>>>>> names.  If you are starting from class names, you use [ClassName1 class] 
>>>>>> to get the class object.
>>>>> 
>>>>> Well, you *could* just use class names, if you used NSClassFromString() 
>>>>> before using the class. There wouldn’t be much point in doing that, 
>>>>> though, since class objects can fit inside arrays and would be more 
>>>>> convenient to use here.
>>>> 
>>>> Did you mean for this to be off-list?  Anyway, I took his use of 
>>>> ClassName1 to mean an identifier.  After all, he didn't write 
>>>> @"ClassName1”.
>>> 
>>> Nope, sorry, that was meant to be on-list. You’re probably right — I had 
>>> assumed that those were meant to be NSString variables, since that’s what 
>>> you’d need to be using if you were storing class names. Wasn’t thinking 
>>> from an Obj-C newbie perspective there; sorry. At any rate, getting the 
>>> class object by calling +class is, of course, the correct thing to do.
>>> 
>>> Charles
>>> 
>>> _______________________________________________
>>> 
>>> 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/computers57%40hotmail.com
>>> 
>>> This email sent to computer...@hotmail.com
>>> 
>> 
> 
> 

_______________________________________________

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

Reply via email to