close

封面  

 

本書天瓏的連結:iOS SDK4 初心者學習殿堂

本書補充,dropbox備份,亦可由博碩網站下載

補充內容:

  • 第四章,iOS5新版使用storyboard的說明及範例
  • 教學ppt及範例:iPhone/iOS 程式設計初心者的第一堂課


這本書的內容和平常市面上的相關書籍走向比較不太一樣,主題的選擇方式是假設讀者並沒有太多的程式經驗,同時以當初自己學習過程中學得需要特別加強的地方拿出來加強介紹,此外因為個人比較注重基本觀念的理解,主觀上認為會用一大堆物件但是基本觀念不清楚,就長遠來說不件是好事,所以本書對基本觀念的介紹相較來說,佔了不小的篇幅,像指標,指標的指標這東西,雖然對會 C/C++ 語言的讀者來說應該是沒什麼問題的觀念,我花了不少頁面在介紹,還舉了許多例子,變數宣告也從最基本的全域變數,區域變數等等基礎概念講起。

Objective-C 裏的selector/message,雖然只是很常見的名詞,但因為我覺得這東西對剛學的人很容易產生混淆,所以我也是花了好幾頁來介紹。

現在網站上並沒有詳細的目錄,所以我在這把比較詳細的目錄列出來,各位只要看一下目錄的內容,大概就可以發現這書本介紹的主題是非常detail的,不止列功能,還介紹觀念,是比較不像一般的字典書就是了,這些觀念其實在官網的教學文件中都有,只是分佈地相當零亂(但是官方的文件資料是相當豐富的,真是是很值得參考。),所以本書也算是對這些觀念做一些較簡要的整理。

此外,本站還有一篇Objective-C的內紹是本書裏面其中幾章的文字原稿,中間雖然經過了近十次的修改,但內容和最後版本大約會有九成五相似,歡近各位的指教。

目前遇到比較多的回應是範例少了些,所以預計如果有第二版的話,會加入新的範例和iOS5新功能的介紹。

 

歡迎各位提供一些建議,因為這本書是希望有一點點基礎甚至沒什麼基礎的人就能看得懂, 所以只要有任何地方各位覺得太難、看不懂、名詞不瞭解的,都歡迎提供建議.

我會儘量讓說明再白話些. 這樣下一版就更能符合大家的需求了,希望這本書不管是對新手或是老手都能提供一定程度的幫助~

 

Chapter 1 iOS 簡介 (黃弘毅)
1.1 iPhone 功能介紹  _____________________________________ 1-2
1.1.1 具備3G 與Wi-Fi 網路連線能力 .......................................................... 1-3
1.1.2 FaceTime 視訊功能 ................................................................................ 1-3
1.1.3 視網膜呈現技術(Retina Display) ....................................................... 1-4
1.1.4 多工(Multitasking) ................................................................................ 1-4
1.1.5 錄製、編輯高畫質影片....................................................................... 1-5
1.1.6 五百萬畫素相機加上LED 閃光燈 ..................................................... 1-6
1.1.7 地圖與羅盤 ............................................................................................. 1-6
1.1.8 智慧鍵盤 ................................................................................................. 1-7
1.1.9 聲控(Voice Control) .............................................................................. 1-7
1.1.10 AirPrint .................................................................................................. 1-7
1.1.11 AirPlay .................................................................................................... 1-8
1.1.12 iBook ...................................................................................................... 1-8
1.1.13 iTunes Store ........................................................................................... 1-8
1.1.14 App Store ............................................................................................... 1-9
1.1.15 更多功能 ............................................................................................... 1-9
1.2 下載安裝開發工具Xcode 以及iOS SDK  _________________ 1-10
1.2.1 註冊Apple ID ........................................................................................1-11
1.2.2 轉換Apple ID 成為開發人員帳號 ....................................................1-12
1.2.3 下載安裝Xcode 3.2.6 ..........................................................................1-14
1.2.4 下載安裝Xcode 4 .................................................................................1-14
1.3 iOS 概述  ___________________________________________ 1-15
1.4 iOS 技術層 (iOS Technology Layers) _____________________ 1-16
1.5 為iOS 開發應用程式 _________________________________ 1-17


Chapter 2 初步探索Xcode (彭煥閎)
2.1 打造一個全新的世界 __________________________________ 2-2
2.2 開發工具 ___________________________________________ 2-10
2.2.1 專案、目標和產品 (Projects 、 Targets  and Products)  ................2-10
2.2.2 檔案編輯器 (Source Editor)  ..............................................................2-15
2.3 小結 _______________________________________________ 2-20
2.4 習題 _______________________________________________ 2-20


Chapter 3 常用畫面元件:UI 元件的介紹(彭煥閎)
3.1 Cocoa Touch _________________________________________ 3-3
3.1.1 常用控制器 (Controllers)  .................................................................... 3-5
3.1.2 常用資料視圖 (Data Views)  ..............................................................3-11
3.1.3 常用控制項 (Controls)  .......................................................................3-20
3.1.4 常用視窗、視圖、橫列 (Windows、Views & Bars)  ..................3-24
3.2 小結 _______________________________________________ 3-28
3.3 習題 _______________________________________________ 3-28


Chapter 4 牛刀小試:一個簡單的整合型範例介紹 (黃弘毅) 
4.1 利用Interface Builder 加入客製化的圖片  _________________ 4-2
4.1.1 建立一個Xcode 專案 ............................................................................ 4-2
4.1.2 利用Interface Builder 建立一個遊戲開頭畫面 ................................ 4-5
4.1.3 加入背景圖 ............................................................................................. 4-7
4.1.4 建立類別檔 ...........................................................................................4-12
4.1.5 建立類別檔與介面檔之間的關聯....................................................4-14
4-2 利用Interface Builder 加入客製化的按鈕 ________________ 4-16
4.2.1 在介面檔上面加入客製化的按鈕....................................................4-16
4.2.2 在類別檔上面加入按鈕元件 ............................................................4-19
4.2.3  連結介面檔上面的按鈕與類別檔上面的按鈕元件 ....................4-20
4.3  利用Xcode 和Interface Builder 製作基本的按鈕互動機制 ............4-23
4.3.1 在類別檔上面宣告與定義動作 (Action) ........................................4-23
4.3.2 連結介面檔上面的按鈕與類別檔上面的動作(Action) ..............4-27
4.3 小結 _______________________________________________ 4-30
4.4 習題 _______________________________________________ 4-30


Chapter 5 Objective C 基本觀念介紹 (黃弘毅)
5.1 MVC 程式架構 _______________________________________ 5-2
5.1.1 淺談MVC ................................................................................................ 5-2
5.1.2 模型 (Model)  .......................................................................................... 5-5
5.1.3 介面 (View)  ............................................................................................ 5-6
5.1.4 控制器 (Controller)  .............................................................................. 5-6
5.2 Target-Action 程式架構 ________________________________ 5-7
5.3 Objective C 基本介紹 __________________________________ 5-8
5.3.1 Objective C:建構於C 語言之上的物件導向語言 .......................... 5-8
5.3.2 類別 (Classes)  ........................................................................................ 5-9
5.3.3 方法與訊息 (Methods and Messaging)  ...........................................5-10
5.3.4 屬性 (Properties) 的宣告 ....................................................................5-14
5.3.5 字串 (Strings)  .......................................................................................5-15
5.3.6 協定 (Protocols)  ...................................................................................5-16
5.4 小結 _______________________________________________ 5-17
5.5 習題 _______________________________________________ 5-17


Chapter 6 實作範例-聯絡人程式Part-1(彭煥閎)
(viewcontroller, navigation controller,table view)
6.1 建立專案 ____________________________________________ 6-2
6.2 滙入資料 ____________________________________________ 6-6
6.3 小結 _______________________________________________ 6-12
6.4 習題 _______________________________________________ 6-12


Chapter 7 實作範例-聯絡人程式Part-2(table view)(彭煥閎)
7.1 收集使用者的輸入 ____________________________________ 7-2
7.2 回應使用者的輸入 ____________________________________ 7-5
7.3 小結 _______________________________________________ 7-22
7.4 習題 _______________________________________________ 7-22


Chapter 8 實作範例-聯絡人程式Part-3 (delegate)(彭煥閎)
8.1 規劃專屬的畫面內容 __________________________________ 8-2
8.2 小結 _______________________________________________ 8-18
8.3 習題 _______________________________________________ 8-18


Chapter 9 實作範例-聯絡人程式Part-4 (address book)(彭煥閎)
9.1 Quick Start  __________________________________________ 9-2
9.1.1 建立專案 ................................................................................................. 9-2
9.1.2 規劃使用者介面 .................................................................................... 9-3
9.1.3 修改定義檔 ............................................................................................. 9-3
9.1.4 修改實作檔 ............................................................................................. 9-4
9.1.5 和 Interface Builder 進行聯結 .............................................................. 9-7
9.1.6 建置和執行應用程式 ........................................................................... 9-7
9.2 使用Record 和 Property  _______________________________ 9-8
9.2.1 通訊錄 (Address books)  ....................................................................... 9-8
9.2.2 記錄 (Records)  ....................................................................................... 9-9
9.2.3 屬性 (Properties)  .................................................................................9-11
9.3 與使用者互動:使用 Address Book UI Framework  ________ 9-14
9.3.1 有什麼是可用的? ................................................................................9-14
9.3.2 顯示畫面來讓使用者選擇聯絡人....................................................9-15
9.3.3 顯示和修改聯絡人資訊 .....................................................................9-15
9.3.4 建立一筆新的聯絡人資料 .................................................................9-16
9.3.5 由現有資料建立一筆新的聯絡人....................................................9-17
9.4 直接存取聯絡人資料庫 _______________________________ 9-19
9.4.1 使用記錄辨識元 (Using Record Identi¬er)  ....................................9-19
9.4.2 使用記錄 (Working with Person Records)  ......................................9-19
9.4.3 使用群組記錄 (Working with Group Records)  ..............................9-20
9.5 小結 _______________________________________________ 9-22
9.6 習題 _______________________________________________ 9-22


Chapter 10 程式基礎-C & Objective-C(彭煥閎)
10.1 物件導向設計 (OOP) ________________________________ 10-2
10.2 學習 Objective-C 前必須俱備的C 語言基本知識 _________ 10-3
10.2.1 變數 ......................................................................................................10-3
10.2.2 變數的種類 .........................................................................................10-3
10.2.3 資料型別與常數 ................................................................................10-4
10.2.4 什麼是指標? ....................................................................................10-5
10.2.5 參數的傳遞 (Argument Passing) .....................................................10-7
10.2.6 指標的指標 .........................................................................................10-9
10.2.7 前置處理器指令 (Preprocessor directives, compiler directives) ...... 10-11
10.3 Objective-C 和C/C++ 語言的關係  ____________________ 10-12
10.4 Objective-C 和iPhone SDK __________________________ 10-13
10.5 小結 _____________________________________________ 10-15
10.6 習題 _____________________________________________ 10-15


Chapter 11 程式基礎-物件、類別及介面(彭煥閎)
11.1 物件、類別及訊息傳遞 (Objects、Classes、Messaging) ______ 11-2
11.1.1 物件 (Object) ......................................................................................11-2
11.1.2 id ...........................................................................................................11-4
11.1.3 物件的記憶體管理 ............................................................................11-5
11.1.4 訊息傳遞 (Object Messaging)  .........................................................11-7
11.1.5 類別 (Classes) ...................................................................................11-11
11.1.6 類別的繼承 .......................................................................................11-11
11.2 如何定義一個類別 _________________________________ 11-14
11.2.1 介面(Class Interface) .......................................................................11-14
11.2.2 匯入介面(importing interface) ......................................................11-18
11.2.3 引用其他類別...................................................................................11-18
11.2.4 介面扮演的角色 ( e Role of the Interface) ...............................11-19
11.3 小結 _____________________________________________ 11-20
11.4 習題 _____________________________________________ 11-20


Chapter 12 程式基礎-類別的實作及協定、特性的介紹(彭煥閎)

12.1 類別的實作 (Implementation)  ________________________ 12-2
12.1.1 合成特性 (synthesize property) .......................................................12-2
12.1.2 存取實體變數 (accessing instance variables)  ...............................12-3
12.1.3 實體變數的適用範圍 ( e scope of Instance Variables) .............12-4
12.1.4 傳送訊息給self 和super(Messages to self and super) ..................12-5
12.2 物件的配置及初始化 ________________________________ 12-8
12.2.1 物件的配置及初始化 .......................................................................12-8
12.2.2 合併物件的記憶體配置和初始化 .................................................12-8
12.2.3 實作初始化方法 (Initializer) .........................................................12-10
12.3 協定 (Protocol) ____________________________________ 12-12
12.3.1 什麼是協定? ..................................................................................12-12
12.3.2 協定的宣告(Formal Protocols) .....................................................12-12
12.3.3 Optional protocol methods .............................................................12-13
12.3.4 Informal Protocols ............................................................................12-15
12.3.5 套用協定 ...........................................................................................12-15
12.3.6 遵從協定(Conforming to a Protol) ...............................................12-15
12.3.7 宣告協定變數...................................................................................12-16
12.4 特性 (Property)____________________________________ 12-17
12.4.1 Attributes ( 屬性) .............................................................................12-18
12.4.2 指定accessor 的名字 .......................................................................12-18
12.4.3 設定讀寫權限...................................................................................12-19
12.4.4 指定setter 的行為 ............................................................................12-19
12.4.5 Atomicity ...........................................................................................12-20
12.4.6 property 綜合範例 ...........................................................................12-22
12.5 小結 _____________________________________________ 12-24
12.6 習題 _____________________________________________ 12-24


Chapter 13 程式基礎-述句& Blocks Programming(彭煥閎)
13.1 簡單述句和複合述句(Simple Statement and Compound Statement)  13-3
13.1.1 簡單述句 (Simple Statement)  ..........................................................13-3
13.1.2 複合述句 (Compound Statement)  ..................................................13-4
13.1.3 流程控制 .............................................................................................13-4
13.1.4 for、while、do-while 迴圈述句 .....................................................13-5
13.1.5 if 述句 ...................................................................................................13-7
13.1.6 if 述句的延伸 ......................................................................................13-9
13.1.7 if-else ....................................................................................................13-9
13.1.8 if-elseif-else 述句 ..............................................................................13-10
13.1.9 巢狀if-else .........................................................................................13-11
13.1.10 switch 述句 ......................................................................................13-11
13.2 初探Block ________________________________________ 13-13
13.2.1 宣告和使用Block ............................................................................13-13
13.2.2 直接使用 Block ................................................................................13-14
13.2.3 __block 變數 .....................................................................................13-14
13.2.4 Block 概要 .........................................................................................13-15
13.2.5 Block 的功能 .....................................................................................13-15
13.2.6 Block 的使用時機 ............................................................................13-16
13.2.7 宣告Block 的參考 (Reference)  ......................................................13-16
13.2.8 建立一個Block .................................................................................13-17
13.2.9 全域的Block .....................................................................................13-17
13.2.10 Block 和變數 ...................................................................................13-17
13.2.11 物件和Block 變數 ..........................................................................13-20
13.2.12 Objective-C 物件 ............................................................................13-20
13.2.13 呼叫一個Block ...............................................................................13-21
13.2.14 將Block 當作函數的參數 .............................................................13-21
13.2.15 將Block 當作方法的參數 .............................................................13-22
13.2.16 該避免的使用方式 ........................................................................13-23
13.3 小結 _____________________________________________ 13-25
13.4 習題 _____________________________________________ 13-25


Chapter 14 字串和容器類別的介紹(彭煥閎)
14.1 字串 ______________________________________________ 14-2
14.2 建立和轉換字串物件 ________________________________ 14-2
14.2.1 建立字串 .............................................................................................14-2
14.2.2 由資料或是C 字串來建立NSString ..............................................14-3
14.2.3 連接和擷取字串 ................................................................................14-4
14.2.4 字串轉換摘要.....................................................................................14-5
14.3 格式化字串 ________________________________________ 14-6
14.3.1 基本概念 .............................................................................................14-6
14.3.2 字串和其他型態的轉換 ...................................................................14-8
14.3.3 由已知編碼從檔案或是網路上讀取字串 ....................................14-9
14.3.4 由未知編碼下讀取資料 .................................................................14-10
14.3.5 將資料寫入檔案或是URLs ...........................................................14-10
14.3.6 讀取、寫入摘要 ..............................................................................14-11
14.3.7 搜尋、比較 ......................................................................................14-11
14.3.8 小結 ....................................................................................................14-12
14.4 容器類別 _________________________________________ 14-13
14.5 陣列:有次序的資料集合 ___________________________ 14-14
14.5.1 NSArray .............................................................................................14-14
14.5.2 NSMutableArray ...............................................................................14-15
14.6 字典:「關鍵字─值」的集合 ________________________ 14-16
14.7 集合:沒有次序物件的集合 _________________________ 14-18
14.8 小結 _____________________________________________ 14-21
14.9 習題 _____________________________________________ 14-21


Chapter 15 記憶體管理(彭煥閎)
15.1 Core Foundation 的記憶體管理  _______________________ 15-2
15.2 記憶體配置器 (Allocator)  ____________________________ 15-3
15.2.1 擁有權的準則.....................................................................................15-3
15.2.2 基本原則 .............................................................................................15-3
15.2.3 命名準則 .............................................................................................15-3
15.2.4 建立物件的規則 (Create Rule)  .......................................................15-4
15.2.5 取得物件的規則 (Get Rule)  ............................................................15-5
15.3 管理Core Foundation 物件的生命週期 _________________ 15-6
15.3.1 增加物件的參考計數 (Retaining Object References)  .................15-6
15.3.2 減少物件的參考計數 (Releasing Object References)  .................15-6
15.3.3 取得物件的參考計數 .......................................................................15-7
15.4 Cocoa Touch 的記憶體管理  __________________________ 15-8
15.4.1 記憶體管理準則 ................................................................................15-8
15.4.2 物件的擁有和釋放 ............................................................................15-9
15.4.3 保留計數 ...........................................................................................15-10
15.4.4 Autorelease  .......................................................................................15-10
15.4.5 共用物件的有效範圍 .....................................................................15-12
15.5 存取方法  (Accessor Methods)  _______________________ 15-14
15.6 釋放物件佔用的資源 (Deallocating an Object)   _________ 15-15
15.7 以參考方式傳回的物件 (Objects Returned by Reference)  _ 15-17
15.8 循環參照 _________________________________________ 15-17
15.9 自動釋放池 (Autorelease pool)  _______________________ 15-19
15.9.1 自動釋放池概觀 ..............................................................................15-19
15.9.2 Autorelease pool 和執行緒 .............................................................15-20
15.10 在Cocoa Touch 中使用Core Foundation 的物件 ________ 15-21
15.11 Nib 物件的記憶體管理  ____________________________ 15-22
15.12 小結 ____________________________________________ 15-23
15.13 習題 ____________________________________________ 15-23


Chapter 16 未知的旅程-多執行緒、動畫(彭煥閎)
16.1 多執行緒程式 ______________________________________ 16-2
16.2 多執行緒程式注意事項 ______________________________ 16-3
16.3 NSObject 的¬read  _________________________________ 16-3
16.4 NS¬read  _________________________________________ 16-4
16.5 @synchronized _____________________________________ 16-5
16.6 NSTimer __________________________________________ 16-5
16.7 NSOperation 和NSOperationQueue ____________________ 16-7
16.7.1 NSOperation 概觀 ..............................................................................16-7
16.7.2 NSOperationQueue ............................................................................16-8
16.8 Grand Central Dispatch (GCD) _______________________ 16-12
16.8.1 使用GCD 的好處.............................................................................16-12
16.8.2 如何使用GCD .................................................................................16-13
16.9 動畫 _____________________________________________ 16-20
16.9.1 什麼東西是可以動的? ................................................................16-20
16.10 由修改UIView 的屬性來產生動畫 ___________________ 16-22
16.10.1 使用以block 為基礎的動畫 .........................................................16-22
16.10.2 使用 Begin/Commit 的方法來製作動畫 ...................................16-25
16.10.3 Begin/Commit 動畫的參數設定 .................................................16-25
16.10.4 設定動畫的代理人 ........................................................................16-27
16.11 巢狀的動畫區塊 __________________________________ 16-28
16.12 針對視圖本身的動畫 ______________________________ 16-28
16.13 動畫技巧小結 ____________________________________ 16-29
16.14 小結 ____________________________________________ 16-30
16.15 習題 ____________________________________________ 16-30

arrow
arrow
    全站熱搜

    穿越時空的旅人 發表在 痞客邦 留言(16) 人氣()