我知道,調用一個方法的實例,如[object theMethod]是一個消息,要求該實例執行一個動作(一個名爲theMethod的方法)。[object method]與CGRectMake或NSRangeMake之間的區別
對於CGRectMake,Apple的documentation沒有幫助。
例如:
當將消息發送到一個實例編譯器轉換的消息表達式:
[receiver message]
入到消息傳遞函數的調用,objc_msgSend。 該函數將接收器,並且該方法的信息,也就是說,該方法選擇器作爲它的兩個主要參數中提到的名字:
objc_msgSend(receiver, selector)
在該消息中傳遞的任何參數也被交給objc_msgSend:
objc_msgSend(receiver, selector, arg1, arg2, ...)
但是CGRectMake呢?該功能位於哪裏?調用函數時主要區別(過程)是什麼?
更新:內存呢?例如,塊在堆棧中創建。 CGRectMake怎麼樣?
請用您需要幫助的代碼的一些特定示例更新您的問題。 – rmaddy
'[object theMethod]'是Objective-C的語義,而像'CGRectMake()'這樣的函數是一個內聯的C函數調用。請參閱http://stackoverflow.com/questions/6207440/what-does-cg-inline-do。 – fullofsquirrels
我認爲這與Objective-C無關。這更多的是關於OOP與非OOP。像C vs C++,結構vs對象,(對象/類)方法vs函數等等。我認爲,即使這是一個有趣的問題,它是相當廣泛的,因爲它需要很長的答案,利弊等。 – Larme