根据我得到Is sending a message in Objective C actually asynchronous?
的答案,在Objective C中发送消息不是异步的所以我的下一个问题是如何在Objective C中异步发送消息(在同一个应用程序中)甚至可能(不使用线程等复杂的东西)?
答案 0 :(得分:1)
检查文档集中Apple的“并发编程指南”。您可以选择诸如线程,操作队列,调度队列等选项。这是一个很大的主题。
答案 1 :(得分:1)
如果您想使用Apple框架进行真正的异步方法调用,只需查看GCD,更准确地说是dispatch_async
。
GCD适用于iOS和OSX,Apple知道接下来会发生什么,因此使用这个“asycn API”可以确保您不易更新不兼容性。
良好的阅读;)
编辑好的,如果你真的不想要任何线程,你可以将你调用的方法声明为(oneway void)
。我发现在覆盖release
时。
这是一个SO答案,解释它的作用:https://stackoverflow.com/a/5495195/700317
希望这会有所帮助。
答案 2 :(得分:1)
假设您试图通过主线程发生某些事情,有很多方法可以处理它。你使用哪一个取决于你在做什么。 查看这些Apple文档开头: https://developer.apple.com/library/mac/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html#//apple_ref/doc/uid/TP40008079 https://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008091 https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Multithreading/Introduction/Introduction.html#//apple_ref/doc/uid/10000057i