我有一个静态方法,它创建一个NSTimer并在后台线程中运行它,如下所示:
+ (void) callInBackgroundThread {
NSTimer *timer = [NSTimer timerWithTimeInterval:0.2
target:self
selector:@selector(callToMainThread)
userInfo:nil repeats:NO];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
}
然后我完成后调用主线程如下:
+ (void) callToMainThread{
NSTimer *timer = [NSTimer timerWithTimeInterval:0
target:self
selector:@selector(foo1)
userInfo:nil repeats:NO];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
}
虽然这有效,但我觉得这很粗略,我想知道是否有更好的方法。 我很感激建议,请注意方法是静态的。
任何帮助都将不胜感激。
此致
答案 0 :(得分:1)
performSelectorOnMainThread:withObject:waitUntilDone:
也适用于课程!
+ (void) callToMainThread {
[self performSelectorOnMainThread:@selector(foo1) withObject:nil waitUntilDone:NO];
}