UIBarButtonItem
でいくつかの作業を行った後、の有効なプロパティを変更しようとしていNSThread
ます。ボタンを押した後、有効を NO に設定し、スレッド部分を実行し、最後にボタンを再度有効にしようとします。かなり基本的。
どういうわけかこれは失敗しますが、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];
}