NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.1 myObj
selector:@selector(doSomething:) userInfo:nil repeats:NO];
Обратите внимание, что ваш селектор - -doSomething:
с двоеточием и аргументом, а реализованный вами метод - -doSomething
без двоеточия и аргумента.На самом деле, ваше объявление метода (-doSomething
) не соответствует реализации (-doSomething:
).Не ясно, является ли это просто ошибкой при вводе вашего примера, или это на самом деле в вашем коде.Какое исключение возникло?
Если эта ошибка есть в вашем коде, таймер заканчивает тем, что пытается отправить сообщение вашему объекту MyClass
, которое он не поймет, что вызывает исключение, чаще всеговероятно.
Вероятно, вам следует изменить метод, установленный для вашего таймера, на следующий, как рекомендуется в документации для + scheduleTimerWithTimeInterval: target: selector: userInfo: repeat: :
@interface MyClass : NSObject {
}
-(void)doSomething:(NSTimer *)timer;
@end
@implementation MyClass
-(void)doSomething:(NSTimer *)timer {
[NSThread detachNewThreadSelector:@selector(RunProcess:)
toTarget:self withObject:nil];
}
@end