この次のコードを使用して、数秒後に UILabel を非表示にしています。残念ながら、NSInvocation の進行中にユーザーがビューを閉じると、アプリがクラッシュします。
- (void)showStatusBarwithText:(NSString*)text{
lblNotification.hidden=NO;
NSInvocation* invoc = [NSInvocation invocationWithMethodSignature:[lblNotification methodSignatureForSelector:@selector(setHidden:)]];
[invoc setTarget:lblNotification];
[invoc setSelector:@selector(setHidden:)];
lblNotification.text=text;
BOOL yes = YES;
[invoc setArgument:&yes atIndex:2];
[invoc performSelector:@selector(invoke) withObject:nil afterDelay:1];
}
そしてそれがエラーです
*** -[UILabel setHidden:]: message sent to deallocated instance 0x1a8106d0
どうすれば解決できますか?使ってみました
[NSObject cancelPreviousPerformRequestsWithTarget:lblNotification]
では、- (void)viewDidDisappear:(BOOL)animated
しかし、それは動作しません。