objective-c - NSTimer 是线程安全的吗?

标签 objective-c ios cocoa-touch nstimer

我有一个间隔为 1/4 秒的重复计时器。我正在这样初始化它:

[NSTimer scheduledTimerWithTimeInterval:0.25 
                                 target:self 
                               selector:@selector(toggleCams) 
                               userInfo:nil 
                                repeats:YES];

这是同步发生的吗?换句话说,我能保证不会在调用 toggleCams 的同时调用同一个类中的另一个方法吗?

最佳答案

NSTimers 实际上只是定期将事件触发到封闭的 NSRunLoop 中,每个线程都有(或应该有)。因此,如果您有一个子(或后台)进程在不同的线程中运行,NSTimers 将针对该线程的 NSRunLoop 而不是应用程序的主 NSRunLoop 触发。

关于objective-c - NSTimer 是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8544569/

相关文章:

ios - 在更新 NSFetchedResultsController 之前,Core Data 是否真的将任何更改保存到磁盘?

ios - 为什么我的标签栏上缺少背景?

objective-c - 将一个项目分成多个Xcode项目文件

ios - 所有 iPad 和 iPad Pro 的 View 之间的常规/常规间距?

objective-c - 在太多对象中初始化某些值会使我的应用程序崩溃

objective-c - objective-c : what is a "(id) sender"?

ios - 核心数据不持久存在于 IOS 中

ios - GooglePlaces API "Response That We Couldn' t 理解错误

ios - iTunes12.7无法安装ipa

ios - adddependency 方法在 NSOperationQueue 中的工作原理