4
A
回答
5
簡單的委託模式:你的對象響應消息amethod方法,那麼它檢查是否存在其他物體響應發送[otherObject respondsToSelector:@selector(amethod方法)的amethod方法的消息,它返回一個布爾值。如果otherObject的確如此,那麼你很清楚發送消息。
更多技術優點NSInvocation方法:如果您的對象發送了一條消息,它將無法響應(crazyMethodName),然後在您的對象上調用forwardInvocation。 NSObject的forwardInvocation的默認實現只調用了doesNotRecognizeSelector,因爲你的對象不能識別選擇器。您可以通過檢查另一個對象是否響應調用的選擇器並在另一個對象上調用該調用(如果是)來覆蓋forwardInvocation的默認實現。
3
消息轉發的一個常見用途是使一個類作爲其他類的代理:將消息發送給此NSProxy
子類的一個實例,並將其分派給它認爲合適的任何類或對象。
消息轉發確實只允許一個類接收它不能接受的消息:您甚至可以使用它來動態地創建方法。這個應用程序將是一個NSManagedObject
類別,它允許您在方法調用中訪問核心數據屬性,而無需爲每個實體編寫定製的NSManagedObject
子類。這讓我想起了Ruby中的method_missing
。
相關問題
- 1. 目標C與forwardingTargetForSelector轉發並不總是工作的消息
- 2. 目標-C消息流
- 3. SharePoint CopyIntoItem目標C中的SOAP消息
- 4. 典型的目標C消息實現
- 5. 如何異步發送消息的目標C
- 6. ActiveMQ消息轉發
- 7. 駱駝:轉發消息到動態目標(從數據庫)
- 8. 目標C發送消息給創作者
- 9. 目標C中的消息系統是否依賴於內核消息系統?
- 10. 如何發送消息到特定的組使用xmpp在目標c中
- 11. 將消息發送到目標c中的零對象是否有缺點?
- 12. Spring Boot - Stomp:'。'與消息目標中的'/'
- 13. ARC和消息轉發
- 14. 用Perl轉發IMAP消息
- 15. 源MME如何解析目標MME發送轉發重定位請求消息?
- 16. 自定義應用程序iOS的消息中心目標C
- 17. 如何理解目標c中的錯誤消息?
- 18. 如何使消息目標成爲目標消息的唯一配方?
- 19. 使用C#發送消息
- 20. 用C發送消息#
- 21. 發送消息到解除分配的對象在目標C的工作
- 22. 在目標c和viewWill中引入子類消息代表?
- 23. 目標c - 取消dealloc中的操作
- 24. 消費目標C中的WCF服務
- 25. 是否可以堅持並轉發WCF消息到目標服務?
- 26. Sitecore EXM 3.2(ECM)將目標分配給觸發的消息
- 27. C#發送消息到C++ WinProc
- 28. 作爲消息參數的目標c類
- 29. 轉換C到目標C
- 30. 目標C - 消除繪製
對於那些沮喪的人,我實際上已經閱讀了大部分文章 - 它只是作爲參考而不是介紹主題 – Casebash 2009-12-17 00:36:18