在C語言中,編程都是面向過程的編程,每一個代碼塊都嚴格按照從上至下的順序執行,在代碼塊之間同樣也是這樣, 但是在OC中往往不是這樣,OC和C++、java等語言一樣,都是面向對象的編程語言,在代碼的執行上有很大的跳躍性。 OC是C語言的超集,對C語言所有的功能進行了封裝,例如,OC對C語言的字元串進 ...
在C語言中,編程都是面向過程的編程,每一個代碼塊都嚴格按照從上至下的順序執行,在代碼塊之間同樣也是這樣,
但是在OC中往往不是這樣,OC和C++、java等語言一樣,都是面向對象的編程語言,在代碼的執行上有很大的跳躍性。
OC是C語言的超集,對C語言所有的功能進行了封裝,例如,OC對C語言的字元串進行了封裝形成了OC的NSString,對字元串進行封裝形成了NSArray;
OC中可以這樣定義一個字元串:NSString *str = @"";在這裡對這句話加一個說明,NSString 是定義字元串的關鍵字,* 是在定義OC對象類型變數時必須使用的,
str是你定義的變數名,@是將c基本對象類型對象化,在賦值和輸出的時候會普遍用到,引號之間就是你想賦值給str的內容(在這裡即為空),最後和C語言一樣以分號結尾,
同樣我們可以定義一個數組類型的變數:NSArray *arr = @[@"",@""];(這個數組裡面有兩個元素,兩個元素都為空);
自動釋放池就是用來自動釋放記憶體的,當一個對象是用strong,copy,retain創建,並且在自動釋放池中,每過一段時間系統會自動去判斷這個對象的生命周期,即這個對象是否在被使用,如果已經沒有被使用,那麼這個對象將被釋放掉,在ARC機制(Xcode預設ARC)裡面通常不用自己寫,也有一些特殊情況會要自己去寫,一些短時間內創建大量記憶體的,比如視頻操作。
在C語言中輸出用printf;但是printf只能輸出C語言的基本對象類型,不能輸出對象類型,所以在OC中用NSLog進行輸出
輸出的格式為:NSLog(@"%@ %@",str,arr);