Ios 传递多个参数时,NSTimer访问错误
我已经归结到这个简单的NSTimer学习。它工作正常,没有任何参数。但有两个参数,它抛出了坏访问。我是以正确的方式传递参数,还是遗漏了其他内容 虽然已经提到了同样的问题,但没有一个是解决这个问题的目的 代码正确性以及为什么访问不好将受到赞赏。谢谢Ios 传递多个参数时,NSTimer访问错误,ios,objective-c,xcode,nstimer,exc-bad-access,Ios,Objective C,Xcode,Nstimer,Exc Bad Access,我已经归结到这个简单的NSTimer学习。它工作正常,没有任何参数。但有两个参数,它抛出了坏访问。我是以正确的方式传递参数,还是遗漏了其他内容 虽然已经提到了同样的问题,但没有一个是解决这个问题的目的 代码正确性以及为什么访问不好将受到赞赏。谢谢 @implementation ScreeLog1 -(void)tickTock{ NSTimer *t = [NSTimer scheduledTimerWithTimeInterval: 2.0
@implementation ScreeLog1
-(void)tickTock{
NSTimer *t = [NSTimer scheduledTimerWithTimeInterval: 2.0
target: self
selector:@selector(onTick::)
userInfo: [NSDictionary dictionaryWithObjectsAndKeys:
@"a",@"b", nil] repeats:NO];
}
-(void)onTick:(NSString *)message1 :(NSString *)message2 {
NSLog(@"%@****%@\n",message1,message2);
}
@end
是的,我使用的是ARC,Xcode5.1传递给scheduledTimerWithTimeInterval方法的选择器只能有一个参数:NSTimer。您可以通过userInfo字典处理自定义参数 试试这个:
-(void)tickTock{
NSTimer *t = [NSTimer scheduledTimerWithTimeInterval: 2.0
target: self
selector:@selector(onTick:)
userInfo: [NSDictionary dictionaryWithObjectsAndKeys:
@"a",@"b",@"c",@"d", nil]
repeats:NO];
}
-(void)onTick:(NSTimer *)timer {
NSDictionary *userInfo = [timer userInfo];
NSLog(@"%@*****%@\n", userInfo[@"b"], userInfo[@"d"]);
}