Re: performSelectorOnMainThread
Re: performSelectorOnMainThread
- Subject: Re: performSelectorOnMainThread
- From: Quincey Morris <email@hidden>
- Date: Sat, 10 Jan 2009 11:16:46 -0800
On Jan 10, 2009, at 11:00, John Love wrote:
-performSelectorOnMainThread:withObject:waitUntilDone:, according to
Apple docs, is passed a SEL method that "should not have a
significant return value".
I wish it to return a INT and I figure that that qualifies as in-
significant. Given that assumption, my real question is how to
implement it. I call:
[self performSelectorOnMainThread:@selector:mySimpleSelector
withObject:nil waitUntilDone:YES];
(int) mySimpleSelector {
if (whatever) return 0;
else return 1;
}
via my call to -performSelectorOnMainThread, just how do I access -
mySimpleSelector's returned INT? The simplest answer is to not have
a return value at all, but rather store the INTs in a global; but I
figure there is no time like the present to learn to solve this
problem the right way.
Here's how I do it. If someone has a cleverer way, I'd be happy to
adopt it. :)
- (void) doSomethingOnMainThread: (NSValue*) resultValue {
int* result = resultValue.pointerValue;
*result = // result of doing something ...
}
- (int) doSomething {
int result;
NSValue* resultValue = [NSValue valueWithPointer: &result];
if (!resultValue)
return // something suitable
[self performSelectorOnMainThread: @selector
(doSomethingOnMainThread:) withObject: resultValue waitUntilDone:
YES];
return result;
}
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden