課程資訊
- 上課教師:潘聖文 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圖如下
開始之前
- 變數:代表記憶體的編號,型別決定占記憶體多大的位置,變數則是存放記憶體起始位置。
NSLog(@"%d",varA); //只要是OBJ C型別的東西都要加@來存取(物件則用%@)
- Function宣告
cal(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裡面代表存放的是一個記憶體位置
int a = 5; int * pa;//因此所有obj c裡面所有的物件,只要他是存放記憶體位置,都需要用指標型態去寫 pa = &a;//放的是一個記憶體位置
- Struct是型別,也就是class(類別)
struct 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); }
struct Date date = {3,10,1970}; today.formatedDate = formatedFunction; today.formatedDate(today);
- Function是存放動作,其記憶體是存在stack裡
- 所以Objective C程式的記憶體位置配置這樣的
Stack的部份是不用管理的,因為用完就沒了,而在Object C裡需要去做記憶體管理的部份則為Heap的區塊。
所以當我們在Obj C裡宣告了某個物件,必需用a = malloc(sizeof(int));//會產生在heap,產生記憶體位置,可做記憶體管理。
- Static variable(靜態變數),會放在Data Segment。
- 所有的View Object都會對應到一個型別(Custom Class那邊去設定)