IOS之學(xué)習(xí)筆記一

1、cocoa框架包含F(xiàn)oundation、Application Kit(Appkit)

 

2、@autoreleasepool{ *** } @autoreleasepool自動(dòng)釋放池,在里面的代碼會(huì)自動(dòng)釋放內(nèi)存,不會(huì)內(nèi)存泄漏

 

3、objective-c 2.0引入ARC(自動(dòng)引用計(jì)數(shù))機(jī)制和自動(dòng)釋放池,降低內(nèi)存管理難度

 

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

 

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

 

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

 

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

 

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

 

9、oc基本數(shù)據(jù)類型包括整形、浮點(diǎn)型、字符型、枚舉型

 

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

 

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

 

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

 

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

 

13、oc會(huì)把反斜線當(dāng)成轉(zhuǎn)義字,我們需要寫兩條反斜線@"c:\\codes"

 

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

 

15、浮點(diǎn)數(shù)除以0.0才可以得到正無窮大和負(fù)無窮大,整形除以0.0會(huì)得到整數(shù)取值邊界值。

 

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

 

17、枚舉類型的本質(zhì)是無符號整型

 

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

 

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

 

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

    -5源碼 1000000000000000 0000000000000101

    -5反碼 111111111111111111111111111111010
    -5補(bǔ)碼 111111111111111111111111111111011
                 000000000000000000000000000000100  -> 4

 

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

        000000000000000000000000000000101
       000000000000000000000000000001001
       000000000000000000000000000001100  -> 12

 

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


 

 

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