在編寫物件導向的程式,都有類似的概念,就是對自已或父類別做為發送訊息(使用方法)的對像,在 Obj-C 中,用了兩個字來執行這個概念 self 與 super。
簡單的說:
self 就是自已,而 super 就是它的父類別
shenfive 發表在 痞客邦 留言(0) 人氣(81)

@literals 是 XCode 4.4.1 之後一種資料型態簡化的寫法
就如以往的 NSString 產生的方式,我們可以用 @““ 的方式來產生之外,NSNumber, NSDictionary, NSArray 都可以用類似的方式產生
先看一下 NSString 的寫法,要產生一個 NSString 我們可以這樣寫
shenfive 發表在 痞客邦 留言(0) 人氣(1,526)
在編寫物件導向的程式,都有類似的概念,就是對自已或父類別做為發送訊息(使用方法)的對像,在 Obj-C 中,用了兩個字來執行這個概念 self 與 super。
簡單的說:
self 就是自已,而 super 就是它的父類別
shenfive 發表在 痞客邦 留言(1) 人氣(6,821)
也許是因為 protocol 很難用文字讓人體會它的設計理念,很多文件都對它講的不是很清楚,但Protocol 協定與 Delegate 委託(也稱做代理或委派)是 Objective-C 中很重要的一部份。但對於初寫程式的人來說,這是物件導向中,最難理解與使用的一部份,大部份的人要實作數個月後,才能開始體會與實用。不論如何,先記住它的語法與使用法好了。
由於 Objective-C 只支援單繼承,對於繼承自不同父Class 的 Class 來說,如果需要有共同的方法名稱,就需要使用 Protocol,但 Protocol 本身並不會寫方法的實作,只會作方法的宣告。實作的部份,要 Class 自已來作。所以Protocol 的動作其實是非常簡單的。如果我們在 XCode 中新增一個 Protocol 也只會有一個 .h 檔不會有 .m 檔。
Protocol 的語法如下:
shenfive 發表在 痞客邦 留言(1) 人氣(7,488)
這而講的是物件導向的基本概念,而最重要的概念就是下面這幾個
【Class 類別】
【Instance Variable 實體變數】
shenfive 發表在 痞客邦 留言(0) 人氣(2,461)
有影片! 看Demo 先吧
Category 是對 Obj-C 類別延伸功能的一個語法,也就是在不修改原 Class 的前提下,對該 Class 增加新的 method。
shenfive 發表在 痞客邦 留言(0) 人氣(3,895)
當一個子類別中有一個方法,名稱與父類別完全一樣時,子類別的方法會取代父類別的方法,這就叫方法的覆蓋 override。
以之前車子的例子來說,我們有一個父類別 Car 與子類別 TurboCar,在 Car 類別中,我們設一個方法叫加速 speedUp,每做一次,就加速 10,那我們可以這樣寫:
shenfive 發表在 痞客邦 留言(0) 人氣(2,863)
繼承 Inheritance 是物件導向中一個很重要的概念,而繼承的意義是建一個新類別來擴充或修訂原類別的功能。
在 Objective-C 中的根類別是 NSObject 類別,除了它以外,每一個類別,都必需有一個父類別。一個子類別,一定會有父類別的所有功能特性,包括實體變數與方法等。所以 alloc,init 等 方法,就可以用在每一個所有的類別與實體上。
shenfive 發表在 痞客邦 留言(0) 人氣(2,206)

建構子是用來初始化實體的工具,建構完成的實體才能開始正常使用。
在 Obj-C 中,一個實體通常要先經過 alloc,這是一個 class method ,用來生成實體。生成之後只是向作業系統要記憶體,但記憶體內的資料並未清除整理,所以還要經過 init 的過成程,init 就是用來整理記憶體,把其內容整理成的內容。一個典型的實體初始化範例如下:
shenfive 發表在 痞客邦 留言(0) 人氣(1,330)
@property 是 Obj-C 2.0 版中開始提供的一種功能,目的是要簡化一個實體變數設定的過程。如 setter 與 getter 小節所述,一個實體變數多半需要寫個數行的 setter 與 getter,但其使用的 Code 都是幾乎是固定模式的,於是所有東西都可以用一行 (XCode 4.3 之前為兩行) 指令來宣告。
使用 @property 宣告實體變數的語法是在類別的 @interface 區段,寫下
shenfive 發表在 痞客邦 留言(3) 人氣(9,621)