【发布时间】:2014-01-22 09:58:16
【问题描述】:
我有这个代码。
- (void)scheduleTimerAfterDelay:(NSTimeInterval)delay {
dispatch_async(dispatch_get_main_queue(), ^{
_timer = [NSTimer scheduledTimerWithTimeInterval:delay
target:self
selector:@selector(triggerTimer:)
userInfo:[NSString stringWithFormat:@"%f", delay]
repeats:NO];
});
}
- (void)triggerTimer:(NSTimer *)timer {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Triggered timer after %@ s.", _timer.userInfo); // <-- Exception thrown!
// Do stuff
});
}
但是当定时器触发时,_timer.userInfo 会导致Exception: EXC_BAD_ACCESS (code=1, address=0xc))。
我在这里错过了什么?在异常行的断点处打印_timer 表明_timer 是<__NSCFTimer: 0x14ec8cb0>。但我也无法通过 lldb 访问 userInfo。我正在使用 ARC。
【问题讨论】:
标签: objective-c ios7 automatic-ref-counting nstimer