-
把Objective-C 和 C++ 兩門面向?qū)ο缶幊陶Z(yǔ)言進(jìn)行對(duì)比。它們語(yǔ)法出現(xiàn)差異的原因,是觸發(fā)對(duì)象行為的方式不同,Objective-C 是向?qū)ο髠鬟f消息的結(jié)構(gòu)模式(Objective-C 演變自 Smalltalk, Smalltalk 使用了傳遞消息的機(jī)制),而 C++ 是函數(shù)調(diào)用。代碼舉例:
// Messaging (OBJC) Object *obj = [Object new]; [obj performWith:parameter1 and:parameter2]; // Function calling (C++) Object *obj = new Object; obj -> perform(parameter1, parameter2); Objective-C 的動(dòng)態(tài)綁定特性,在 運(yùn)行時(shí)(runtime)進(jìn)行對(duì)象方法的匹配,而不是在編譯的時(shí)候。
在 運(yùn)行時(shí) 階段,一組代碼會(huì)和你的代碼進(jìn)行合并起來(lái),并且把你的代碼和動(dòng)態(tài)庫(kù)相連接。
-
Objective-C 中對(duì)象在內(nèi)存中的存儲(chǔ)方式。
NSString *someString = @"The string"; NSString *anotherString = someString;

內(nèi)存分配