Ok, so say i have a second thread running, but it wants to manipulate something on the main thread, like a UI item.
-(void)backgroundThread
{
[myButton performSelectorOnMainThread:@selector(setEnabled:) withObject:(BOOL)YES waitUntilDone:YES];
// right here, how could i pass this BOOL to the function
}
I’ve tried using NSNumber‘s numberWithBOOL, but the NSButton doesn’t accept it.
You cannot use
performSelectorOnMainThread:withObject:waitUntilDone:with an argument that isn’t an Objective-C object, and you cannot useNSNumberbecause there’s no automatic unboxing from objects to primitive types.One solution is to implement a similar method that accepts a button as an argument and call that method instead.
For example, in that same class:
and
Another solution is to implement a category on
NSButtonwith an alternative method (e.g.-setEnabledWithNumber:), and use that method instead:and