Timer計時會被scrolView的滑動影響的問題可以通過將timer添加到NSRunLoopCommonModes來解決
NSTimer *timer = [NSTimer timerWithTimerInterval:1.0] target:self selector:@selector(timerTick:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommomModes];主線程的run loop是默認啟動的稻轨,其他線程默認不啟動
NSRunloop 不是線程安全的查库,CFRunLoopRef是線程安全的
我們不能再一個線程中去操作另外一個線程的run loop對象屠缭,那很可能會造成意想不到的后果。不過幸運的是CoreFundation中的不透明類CFRunLoopRef是線程安全的相赁,而且兩種類型的run loop完全可以混合使用相寇。Cocoa中的NSRunLoop類可以通過實例方法:
-(CFRunLoopRef)getCFRunLoop;
4.當在其他線程上面執(zhí)行selector時钮科,目標線程須有一個活動的run loop唤衫。對于你創(chuàng)建的線程,這意味著線程在你顯式的啟動run loop之前是不會執(zhí)行selector方法的绵脯,而是一直處于休眠狀態(tài)佳励。
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)argwaitUntilDone:(BOOL)wait modes:(NSArray *)array;