我試圖在NSThread
中做一些東西后,更改UIBarButtonItem
的啓用屬性。按下按鈕後,我將啓用設置爲否,然後執行螺紋部分,最後我嘗試重新啓用按鈕。相當基本。iPhone UIBarButtonItem setEnabled in NSThread
不知何故這失敗,但我可以正確地更改UIBarButtonItem的任何其他屬性(例如標題)。
我在這裏做錯了什麼?
@interface myViewController : UIViewController <UITableViewDataSource, UITableViewDelegate> {
IBOutlet UIBarButtonItem *myButton;
}
@property (nonatomic, retain) IBOutlet UIBarButtonItem *myButton;
- (IBAction)mysub:(id)sender;
@end
@implementation myViewController
@synthesize myButton;
- (IBAction)mysub:(id)sender {
[myButton setEnabled:NO];
[NSThread detachNewThreadSelector:@selector(mysub_threaded) toTarget:self withObject:nil];
}
- (void) mysub_threaded {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
… do threaded stuff
[myButton performSelectorInBackground: @ selector(setEnabled :) withObject: [NSNumber numberWithBool:YES]];
[pool drain];
}
setEnabled:需要一個BOOL,而不是NSNumber *。 – 2010-08-06 17:47:52
tc。那麼,將BOOL參數傳遞給performSelectorOnMainThread而不是使用NSNumber的正確方法是什麼? – Tomas 2010-08-06 19:46:45