標籤:斯坦福 ios 學習筆記
一、iOS四層結構
1、Core OS
是用FreeBSD和Mach所改寫的Darwin, 是開源、符合POSIX標準的一個Unix核心。這一層包含或者說是提供了整個iPhone OS的一些基礎功能,比如:硬體驅動, 記憶體管理,程式管理,線程管理(POSIX),檔案系統,網路(BSD Socket),以及標準輸入輸出等等,所有這些功能都會通過C語言的API來提供。另外,值得一題的是,這一層最具有UNIX色彩,如果你需要把 UNIX上所開發的程式移植到iPhone上,多半都會使用到Core OS的API.
2、Core Service
Core Services在Core OS基礎上提供了更為豐富的功能, 它包含了Foundation.Framework和Core Foundation.Framework, 之所以叫Foundation ,就是因為它提供了一系列處理字串,排列,組合,日曆,時間等等的準系統。Foundation是屬於Objective-C的API,Core Fundation是屬於C的API。另外Core servieces還提供了其他的功能,比如:Security, Core Location, SQLite, 和Address Book. 其中Security是用來處理認證,密碼管理,按安全性管理的; Core Location是用來處理GPS定位的;SQLLite是輕量級的資料庫,而AddressBook則用來處理電話薄資料的。
3、Media
如同其名,Media層提供了圖片,音樂,影片等多媒體功能。映像分為2D映像和3D映像, 前者由Quartz2D來支援,後者則是用OpenglES.與音樂對應的模組是Core Audio和OpenAL, Media Player 實現了影片的播放, 而最後還提供了Core Animation來對強大動畫的支援。
4、Cocoa Touch
最上面一層是Cocoa Touch,它是Objective-C的API, 其中最核心的部分是UIKit.Framework,應用程式介面上的各種組件,全是由它來提供呈現的,除此之外它還負責處理螢幕上的多點觸摸事件,文字的輸出,圖片,網頁的顯示,相機或檔案的存取,以及加速感應的部分等。
二、iOS中的MVC
如所示,我們將劃分為三個部分,白色分割線條表示可以直接存取,黃色分割線條表示不能直接存取。
我們現在要訪問某個視圖UIView中的屬性,就需要使用Outlet進行直接存取,如果視圖中有某些事件(比如點擊、滑動)要通知控制器(Controller)則需要通過action或者delegate的方式進行訪問,而Model的資料變化是通過廣播來進行通知Controller的。
三、第一個Objective-C重點及注意點
我們建立一個Card類,包含兩個檔案(Card.h檔案和Card.m檔案)
** Card.h是公有聲明,Card.m是私人實現
如所示,私人的聲明可以在Card.m檔案中進行聲明。
** 點文法只適用於getter和setter方法(傳回值為void的其他方法只有文法警告,但是不建議使用)
** Objective-C和Java不同的是屬性不能直接通過點文法訪問(點文法實際上調用的是getter和setter方法)
其他文法請參考系列部落格《Objective-C基礎筆記》
iOS菜鳥成長筆記(3)——斯坦福公開課學習(1)