消息的概念通常與異步調用相關聯。目標C是這種情況嗎?即當一個調用者向一個被調用者發送一個消息來執行一個方法時,調用者是否會立即繼續或被阻塞,直到被調用者完成執行請求的方法?在Objective C中發送的消息實際上是異步的嗎?
2
A
回答
3
這絕對是封鎖。因爲消息被以純C.實際翻譯
[myObj myMethod];
變得
objc_msgSend(myObj, @selector(myMethod));
在運行時。
但是,一些方法被實現爲異步。請參閱-[NSTask launch]
,-[NSThread start]
等
2
不,當您讀取objective-c中的「發送消息」時,您必須將其視爲調用方法。 所以,發送消息是調用一個方法,一些是同步的,一些是異步的,你必須檢查文檔才能看到。
+1,但對於這些異步方法,實際方法是同步運行的。這只是該方法所做的工作是異步啓動和執行的。無法使消息發送異步。 – wbyoung 2012-04-15 14:01:22
謝謝然後我的下一個問題http://stackoverflow.com/questions/10163489/how-to-send-message-asynchronously-in-objective-c排除你提到的具體方法。 – user310291 2012-04-15 15:44:40