我为Alert提供了一个类级方法:
@interface TestAlert
@end
+ (void)showErrorAlert:(NSTimer *)message
{
.......
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil message:messageIn delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alert show];
}
我希望直接在scheduledTimerWithTimeInterval
中调用它:
[NSTimer scheduledTimerWithTimeInterval:0.001 target:TestAlert selector:@selector( showErrorAlert:) userInfo:error repeats:NO];
当然有语法错误。
我知道我可以将showErrorAlert
放到方法中:
- (void)showError:(NSTimer *)timer
{
//NSLog(@"show error %@", error);
[TestAlert showErrorAlert:(NSString *)[timer userInfo]];
}
然后
[NSTimer scheduledTimerWithTimeInterval:0.001 target:self selector:@selector(showError:) userInfo:error1 repeats:NO];
但调用showErrorAlert
时会导致崩溃,因为showErro
方法的错误消息已被释放。
我可以直接拨打showErrorAlert
吗?如果我不能,我应该如何避免错误信息的发布?
答案 0 :(得分:2)
只需使用[TestAlert class]
作为目标,而不是TestAlert
。
答案 1 :(得分:0)
尝试这个怎么样? 你可以在这里找到所有类型的performSelector:方法: