Effective Objective-C 2.0學習(一)

OC是C語言的超集,使用了面向對象的特性。OC使用消息結構(messaging structure)而非方法調用(function calling),區別在於,消息結構在運行時決定執行的代碼,而方法調用,由編譯器決定。
OC使用引用計數機制,熟悉C的內存模型有助於瞭解OC的內存管理。
OC的對象都是聲明在堆(heap)中,寫法: NSString *somgString = @"The string"; 在棧(stack)中聲明是不合法的, NSString someString;
區別:堆通常由程序員分配,而棧由編譯器分配
OC的內存管理已經抽象出來,叫作引用計數(reference counting),不須要程序員去malloc和free。
有些OC的變量(非對象)是使用棧空間的,好比:CGRect,至關於C的結構體。由於頻繁地建立釋放OC的對象,會影響性能。程序員

在類的頭文件中儘可能少引入其餘頭文件,這樣作能夠儘量的減小編譯時間,並減小相互依賴。此時,使用向前聲明(forward declaration)。
有些狀況,好比聲明遵循某個協議,首先考慮把這些協議聲明移到class-continuation分類中,其次或放置到一個單獨的只包含協議的頭文件中。性能

相關文章
相關標籤/搜索