IOS之學習筆記一

1、cocoa框架包含Foundation、Application Kit(Appkit)

 

2、@autoreleasepool{ *** } @autoreleasepool自動釋放池,在里面的代碼會自動釋放內存,不會內存泄漏

 

3、objective-c 2.0引入ARC(自動引用計數)機制和自動釋放池,降低內存管理難度

 

4、NSLog()的NS是一個前綴,Cocoa對其所有的函數、常量、類型前面都會增加"NS"前綴,這個前綴區(qū)分函數來自Cocoa,而不是來自其它程序包

 

5、字符串@"chenyu"前面加@號是為了區(qū)分C語言里面的字符串,好吧,這個我之前也覺得奇怪。

 

6、objective-c程序早期Xcode用gcc編譯, Xcode4開始用內置的LLVM(Low Level Virtual Mach低級虛擬機)編譯

 

7、在mac終端編譯c程序命令, clang -fobjc-arc -framework Foundation **.m -o **.out,然后在終端執(zhí)行./××.out 就行了

 

8、NSLog(@"helli is %ld", [str length]);這里的[]就是調用的意思

 

9、oc基本數據類型包括整形、浮點型、字符型、枚舉型

 

10、oc還有一種特殊的空類型(null type),nil空引用是空類型唯一的值,空引用(nil)可以轉換為任何引用類型

 

11、整形一般是short、int、long、long long,mac系統(tǒng)它們占的字節(jié)分別是2個字節(jié)、4個字節(jié)、8個字節(jié)、8個字節(jié)、

 

在ios系統(tǒng)里面,分別是2個字節(jié)、4個字節(jié)、4個字節(jié)、8個字節(jié)

 

12、NSLog輸出函數及格式字符 %d(整形) %o(八進制無符號)%x(16進制無符號)%u(十進制無符號)%c(已字符輸出)%s(C語言的字符串)%f(已小數點輸出浮點數)%p(以16進制輸出指針變量)%@(輸出 oc對象)

 

13、oc會把反斜線當成轉義字,我們需要寫兩條反斜線@"c:\\codes"

 

14、float占4個字節(jié),double占8個字節(jié),long double占16個字節(jié)

 

15、浮點數除以0.0才可以得到正無窮大和負無窮大,整形除以0.0會得到整數取值邊界值。

 

16、枚舉類型,enum season {spring, summer, fall, winter}; enum season myLove, yourLove; myLove = winter;

 

17、枚舉類型的本質是無符號整型

 

18、BOOL類型值有2個分別是YES、NO、分別代表1、0 底層實際上用signed char代表BOOL,C語言里面非0的整數都被當為真

 

19、short->int->long->long long->float->double->long double

 

20、NSLog(@"%d", ~-5); 輸出4,正數的補碼和原碼完全相同,負數的補碼等于反碼+1,反碼對原碼取反,最高位不變

    -5源碼 1000000000000000 0000000000000101

    -5反碼 111111111111111111111111111111010
    -5補碼 111111111111111111111111111111011
                 000000000000000000000000000000100  -> 4

 

21、NSLog(@"%d", 5 ^ 9);輸出12

        000000000000000000000000000000101
       000000000000000000000000000001001
       000000000000000000000000000001100  -> 12

 

22、NSLog(@"%d",  -5 >> 2);輸出-2 (左移n位就相當于乘以2的n次方,右移則是除以2的n次方,如果不能整除,實際返回結果小于除法結果的最大整數)


 

 

 
 
作者:chen.yu
深信服三年半工作經驗,目前就職游戲廠商,希望能和大家交流和學習,
微信公眾號:編程入門到禿頭 或掃描下面二維碼
零基礎入門進階人工智能(鏈接)