Cocoa Touch
主要特點:
- 基于objective-c語言、動态運作時
- Core Animation:基于組合獨立圖層
- Core Audio:播放、處理和錄制音頻
- Core Data:面向對象的資料管了解決方案
Cocoa Touch主要架構
- 音頻和視訊:Core Audio、Open AL、Media Library、AV Foundation
- 資料管理:Core Data、SQLite
- 圖形和動畫:Core Animation、OpenGL ES、Quartz 2D
- 網絡:Bonjour、WebKit、BSD Sockets
- 使用者應用:Address Book、Core Location、Map Kit、Store Kit
iPhone 技術層構成
Cocoa Touch層 | 多媒體層 | 核心服務層 | 核心OS層 | |
---|---|---|---|---|
功能描述 | 為應用程式提供核心功能 | 建立複雜圖形、播放音頻和視訊、生成實時的三維圖形 | 通路較低級的作業系統服務如檔案存取、聯網等 | 最低級的iOS服務 包括線程、複雜數學運算、硬體配件和加密等 |
關鍵技術 | 1. 多任務 2. 列印<br 3. 資料保護 4. 蘋果推送通知服務 5. 本地通知 6. 手勢識别 7. 檔案共享 8.點對點對戰服務 9. 标準系統View Controller 10. 外部顯示支援 | |||
主要架構 | 1. UIKit 2. MapKit 3. Message UI / Address Book UI / Event Kit UI 4. iAd 5. Event Kit UI | 1. AV Foundation 2. CoreAudio 3. CoreImage 4. CoreGraphics 5. CoreText 6. Image I/O 7. Media Player 8. OpenGLES 9. QuartzCore | 1. Accounts 2. Address Book 3. CFNetwork 4. Core Data 5. Core Foundation 6. Foundation 7. EventKit 8. CoreLocation 9. CoreMotion 10. Quick Look 11. StoreKit 12. SystemConfiguration | 1. Accelerate 2. Extemal Accessory 3. Security 4. System |
Cocoa ——核心類
-
NSObject
根類是所有類的子類,定義了所有類都有的方法,例如
和alloc
init
-
UIApplication
- 每個程式在運作期有且僅有一個
(或其子類)執行個體UIApplication
- 程式開始運作時,
函數是程式的進入點,該函數的一個重要工作就是建立一個UIApplicationMain
的單例執行個體可以通過調用UIApplication
得到該單例執行個體的指針[UIApplication sharedApplication]
- 主要工作是處理使用者事件,會開啟一個隊列,把所有使用者事件放入隊列逐個處理。在處理事件時,它會發送目前事件到一個合适處理事件的目标控件。此外,還維護一個在本應用中打開的Window清單(
執行個體),以此接觸應用中任何一個UIWindow
對象。UIView
執行個體會被賦予一個代理對象,以處理應用程式生命周期事件、系統事件等UIApplication
- 每個程式在運作期有且僅有一個
-
UIWindow
管理和顯示視圖的容器:提供一個區域顯示視圖、将事件event
分發給視圖
事件産生 --> 放入事件隊列(event queue) --> Application單例取出一個事件分發 --> 關鍵視窗(key window)處理 --> (如果是觸摸事件)通過響應鍊(responder chain)找到處理事件的對象
-
UIView
定義一塊矩形區域,并管理該區域内的所有螢幕顯示 -
UIResponder
- 一個UIResponder類表示一個可以接收事件的對象,UIResponder的執行個體被稱為響應者
- 所有顯示在界面上的對象都是從UIResponder直接或間接繼承的
-
UIControl
UIControl類是從UIView派生而來的,且是幾乎所有螢幕控件的父類,根據觸摸事件觸發操作 -
UIViewController
提供一個用于顯示View界面,同時包含View加載、解除安裝事件的重定義功能
Cocoa——資料類型類
-
NSString / NSMutableString
可以使用@符号 如
初始化字元串myLabel.text = @"xxx";
-
NSArray / NSMutableArray
- 初始化時總是使用nil來結束對象清單:
message = [[NSArray alloc] initWithObjects:@"a",@"b",nil]; [message objectAtIndex:1];
- NSMutableArray用于建立初始化後可被修改的數組,NSArray建立時包含了所有的對象不能增加或者删除(immutable)
-
NSDictionary / NSMutableDictionary
"object - key"對存儲,object可以是任何類型,key可以是任何字元串message = [[NSDictionary alloc]initWithObjectsAndKeys: @"ob1",@"key1",@"ob2",@"key2",nil]; [message objectForKey:@"key2"];
-
NSNumber / NSDecimalNumber
用于将C語言中的數字類型存儲為NSNumber對象,這樣可以作為對象加入數組、字典中
NSDecimalNumber 是NSNumber的子類,用于對非常大的數字執行算術運算[myNumber = [NSNumber alloc] numberWithInt:100];
-
NSDate
建立日期對象并對日期進行運算myDate = [NSDate date]; //建立目前日期的對象 [myDate earlierDate: userDate]; //比較這兩個日期哪個更早
Cocoa ——UI界面類
類 | 作用 |
---|---|
UILabel | 顯示靜态文本 作為可控制文本塊,必要時進行修改 |
UIButton | 使用者輸入,響應衆多觸摸事件 |
UISwitch | 使用者輸入,收集“開”和“關”響應 |
UISegmentedControl | 可觸摸的長條,包含多個命名的選項,觸摸選項可以激活事件 |
UISlider | 可拖拽的小球,從特定範圍内選取一個值 |
UIStepper | 步進控件類似于滑塊,給一個内部屬性+1或者-1 |
UITextField / UITextView | 用于收集通過鍵盤輸入内容,前者單行,後者多行(且可以包含換行符) |
UIDatePicker / UIPicker | 通過修改轉盤的每個部分,可以用作多個值的組合,快速輸入日期和時間 通過繼承UIPicker類,還可以建立自己的選擇器 |
UIPopoverController | iPad特有的,能夠在其他視圖上面顯示一個視圖,以便使用者選擇器中的一個選項 |
UIColor | 用于指定cocoa元件的顔色 |
UITableView | 用于顯示清單條目,iPhone中沒有二維表的概念,每一行隻有一個單元格,如果要實作二維表的顯示,則需要重定義每行的單元格,或者并列使用多個TableView。一個tableView至少有一個section,每個section中可以有0行、1行或者多行cell |