課程資訊
- 上課教師:潘聖文 Michael Pan ( scentsome@gmail.com) > 認真好老師推!
- 課程名稱:資策會IPhone應用軟體開發入門篇
運作流程
- main function為固定進入點
- 在iphone app開發裡面,一個一整頁的畫面是Scene,會有對應一個Controller
- 切換不同Scene的叫做View Controller,跳出如輸入框或選取框的這種(非整頁切換),則不需View Controller
- Navigation Controller是只有上面的Bar(用以控制頁面切換),會將View Controller塞進裡面。
- 所有Object特有的類別都會加上NS開頭(因為是某個縮寫為NS的公司開發的)
- Objective-C可以在執行時動態產生Code。
- 整個Design Flow圖如下
開始之前
- 變數:代表記憶體的編號,型別決定占記憶體多大的位置,變數則是存放記憶體起始位置。
1NSLog(@"%d",varA); //只要是OBJ C型別的東西都要加@來存取(物件則用%@) - Function宣告
12345678910cal(int a, int b);int main(int argc, const char * argv[]){int a=5;float b=6;cal(a,b); //呼叫函數return 0;}cal(int a,int b){printf("a+b=%d",(a+b));} - ios程式的基本組成是由三個frameworks:
(a) UIKit:給特殊樣式的ui
(b) Core Graphics:畫圖
(c) Foundation:C和OBJ C用的
ps:要自己加可以按Target=>Summary=>Linked Frameworks and Libraries=>+ - 副檔名:表頭檔.h和內容檔.m及.mm(要用view一定要用.m;要像視訊則可用.mm)
Pointer & Object 指標與物件
- Pointer在C裡面代表存放的是一個記憶體位置
123int a = 5;int * pa;//因此所有obj c裡面所有的物件,只要他是存放記憶體位置,都需要用指標型態去寫pa = &a;//放的是一個記憶體位置 - Struct是型別,也就是class(類別)
123456789struct Date{int day;int month;int year;void ( * formatedDate ) (struct Date date);}void formatedFunction(struct Date date){printf("The day is %d, %d/%d",date.year, date.month, date.day);}
123struct Date date = {3,10,1970};today.formatedDate = formatedFunction;today.formatedDate(today); - Function是存放動作,其記憶體是存在stack裡
- 所以Objective C程式的記憶體位置配置這樣的
Stack的部份是不用管理的,因為用完就沒了,而在Object C裡需要去做記憶體管理的部份則為Heap的區塊。
所以當我們在Obj C裡宣告了某個物件,必需用
1a = malloc(sizeof(int));//會產生在heap,產生記憶體位置,可做記憶體管理。 - Static variable(靜態變數),會放在Data Segment。
- 所有的View Object都會對應到一個型別(Custom Class那邊去設定)