我在看一些旧的代码,看到下面的if语句:isMainThread和currentThread == mainThread有什么区别?
if ([NSThread currentThread] != [NSThread mainThread])
我暗自怀疑,这是不一样的
if (![[NSThread currentThread] isMainThread])
我怀疑,因为我们正在从字段中获取一些崩溃报告(仅iOS 6),这些报告似乎是由需要在主线程上运行的代码造成的。该代码似乎受到前if语句的保护,但鉴于我们看到的崩溃数量,我并不确信。
这两个if语句是否等价,还是有可能第一个会因为某种原因失败?
最好的选择是使用类方法:'+ [NSThread isMainThread]'。这比您的代码更短,更清晰。 –