Objective C 教程 @Part-04

● 應用程式框架 ( Framework)

開始前我們要先討論什麼框架(Framework)。框架是由一群以相關種類區分開來開發出來的類別(Class)組成,而各個類別內都提供了相關服務性質的方法內容。在做初始的開發學習階段,我們最常用的三套框架分別為 : (基礎框架) – <UIKit/UIKit.h>(使用者界面框架) – (應用元件框架包含較為廣泛)。

  • Foundation(基礎框架) : 基礎框架不論在開發Mac或iOS應用程式中都會用到,他提供了程式你最常用到的如 數值(Numeric),字串(String),陣列(Array),詞典集合物件(Dictionary),資料讀取與輸出(I/O),就連我們最頭痛的記憶體管理機制都是透過基礎框架提供。
  • UIKit(使用者介面框架) : 簡易來說,UIKit主要用來提供建構與管理iOS應用程式使用者界面,例如 UIAlertView(提示窗面板),使用時機在於你想對使用者告知某些訊息並讓使用者選擇時,可以在適當時機使用UIAlertView show出即時文字視窗,並搭配UIAlertView協定好的物件並實作特定接收到訊息的方法,在使用者做出選擇時,這個協定過的方法將會接收到使用者選擇的結果,而這就是我們之前有提到的Protocol協定,再實際設計應用程式時,他們統稱叫做代理人(delegate),不過說穿了就是CallBack罷了。
  • Application Kit(各應用元件) : 此應用元件應用範圍非常之廣,包含了我們最常用的 UIButton(按鈕),文字框(TextField),捲軸頁面(Scroller)..等UI元件。

閱讀全文

廣告

Objective C 教程 @Part-03

● 類別部署 ( Category )

再物件導向的觀念裡,將整個專案設計元件化,一來方便管理,一來易於重複性使用。舉Angry Bird這款有名的遊戲來說,每隻鳥都繼承自一個鳥的基底物件,而如果今天要設計一隻有新特性的鳥,我們將直接繼承鳥物件再進而針對這隻新的鳥成員新增對應程式碼。以上所說是正常物件設計情況下以繼承方式即可達成目的。但有一種特定情況,例如你想對每隻鳥都會去繼承的鳥基底物件新增一些程式碼,但是又不想直接修改程式碼而破壞原本寫好的物件結構時,在 Objective C 裡提供了Category這個速成的捷徑,它能在不更動目標物件程式碼的任何內容情況下,對該目標物件新增你想加入的程式碼片段。以下我們以最簡單的方式示範Category應用 : 

閱讀全文

Objective C 教程 @Part-02

● @property & @synthesize

在Objective C宣告的變數(variable)其對外的存取權限預設都是Protected,在受保護的情況下也就表示只有自己本身類別與繼承本身類別的物件可取用這些變數,而至於外部想取用與設定本身Class裡的變數,例如被其他類別生成使用,此種情況下其他類別是無法直接取得變數,須對每個相對應變數個別提供 get & set 給外部呼叫並回傳。而此種寫法你需提供外部取得的變數越多,這種非必要的程始碼也就越加肥大不利於閱讀,因此在Objective C裡提供了@Property的宣告和@Synthesize的對應來簡化前面提到的瑣碎動作。

閱讀全文

Objective C 教程 @Part-01

● 什麼是Objective-C

1980年代初,Brad Cox 與 Tom Love 在其公司 Stepstone 發明 Objective-C,並以一種叫做 SmallTalk-80 的語言為基礎。Objective-C 建立在 C 語言之上,意味著它是在 C 語言基礎上添加了擴充功能而創造出來能夠建立和操作物件的一門新的程式語言(即物件導向)。1988年NeXT Computer 公司獲得了 Objective-C 語言的授權,並開發出了 Objective-C 的函式庫和一個名為 NEXTSTEP 的開發環境。1992年,自由軟體基金會的 GNU 開發環境增加了對 Objective-C 語言的支援。1994年NeXT Computer 公司和 Sun Microsystem 聯合發行了一個針對 NEXTSTEP 系統的標準典範,名為 OPENSTEP。OPENSTEP 在自由軟體基金會的實作名稱為 GNUstep1996年12月20日蘋果公司宣布收購 NeXT Software 公司,NEXTSTEP/OPENSTEP 環境即成為蘋果作業系統 OS X 主要開發基礎,而這個開發環境被蘋果公司稱為 Cocoa

閱讀全文