Hi,

I have a background thread which needs the main thread to create an object 
(because part of the initializer isn't thread safe).

The performSelector: methods don't expose the return value of the message, even 
with waitUntilDone:YES. I'm not happy with my workaround, which is to use an 
instance variable:

@interface MyClass : NSObject {
        id tmpObj;
}
@end

@implementation MyClass

- (void)foobar
{
        [self performSelectorOnMainThread:@selector(createMyObj) withObject:nil 
waitUntilDone:YES];
        id myObj = tmpObj;
        [tmpObj autorelease];
        tmpObj = nil;
        
        // do stuff with myObj
}

- (void)createMyObj
{
        tmpObj = // create object
        
        [tmpObj retain]; // retain object, so it doesn't get auto-released
}

@end

Has anyone else got a cleaner technique? Perhaps provide an NSMutableDictionary 
to withObject: ?

- Abhi

- - -

Kind Regards,
Abhi Beckert

Senior Programmer
Precedence - Websites. Hosting. Marketing.
1300 363 160
http://precedence.com.au

_______________________________________________

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