2010年9月5日 星期日

Objective-C 的 建構式 NEW 在哪裡?

不論開發Java 或 .Net 這類物件導向程式語言平台,當要把類別變成一個真正可運用的物件實例時,都會搭配使用 NEW 關鍵字來達到目的,所以當apple對外宣稱Objective C是標準物件導向語言時,對於從沒開發過MAC的我,很自然會誤以為應該也會有相同的 NEW 關鍵字.......於是乎.....我翻了許多台灣訪間關於iphone AP的設計書籍,卻沒找到任何一個建構式 NEW 的字眼,所以整個iPhone AP的類別開發方式,讓我相當疑惑,後來突然了解,原來他的NEW建構函式並沒規定一定要取名為NEW,可以是任何你想要的名稱,但一般都會建議使用 init,並搭配一個指定記憶體區塊的alloc關鍵字,語法如下: 

MyClassName  *myClassObj=[[MyClassName alloc] init];
[myClassObj sayHello];

如果你是使用 .NET 或 JAVA 要達到等同效果,語法如下:

(VB.Net為例)
Dim myClassObj As MyClassName=new myClassObj
MyClassName.sayHello


這樣的釐清,對我幫助很大,希望這短短的文章也能對於想要入門iPhone ap 開發的朋友有所助益。

2 則留言:

  1. 其實在Objective C 2.0中也可以使用 new

    MyClassName *myClassObj=[MyClassName new];
    [myClassObj sayHello];

    new可以直接達成配置記憶體與初始化喔~:)

    回覆刪除
  2. 喔~ 那初始化的一些客制化運作,要如何處理? new 後再呼叫相對應的函式嗎?

    回覆刪除