IOS之学习笔记一
1、cocoa框架包含Foundation、Application Kit(Appkit)
2、@autoreleasepool{ *** } @autoreleasepool自动释放池,在里面的代码会自动释放内存,不会内存泄漏
3、objective-c 2.0引入ARC(自动引用计数)机制和自动释放池,降低内存管理难度
4、NSLog()的NS是一个前缀,Cocoa对其所有的函数、常量、类型前面都会增加"NS"前缀,这个前缀区分函数来自Cocoa,而不是来自其它程序包
5、字符串@"chenyu"前面加@号是为了区分C语言里面的字符串,好吧,这个我之前也觉得奇怪。
6、objective-c程序早期Xcode用gcc编译, Xcode4开始用内置的LLVM(Low Level Virtual Mach低级虚拟机)编译
7、在mac终端编译c程序命令, clang -fobjc-arc -framework Foundation **.m -o **.out,然后在终端执行./××.out 就行了
8、NSLog(@"helli is %ld", [str length]);这里的[]就是调用的意思
9、oc基本数据类型包括整形、浮点型、字符型、枚举型
10、oc还有一种特殊的空类型(null type),nil空引用是空类型唯一的值,空引用(nil)可以转换为任何引用类型
11、整形一般是short、int、long、long long,mac系统它们占的字节分别是2个字节、4个字节、8个字节、8个字节、
在ios系统里面,分别是2个字节、4个字节、4个字节、8个字节
12、NSLog输出函数及格式字符 %d(整形) %o(八进制无符号)%x(16进制无符号)%u(十进制无符号)%c(已字符输出)%s(C语言的字符串)%f(已小数点输出浮点数)%p(以16进制输出指针变量)%@(输出 oc对象)
13、oc会把反斜线当成转义字,我们需要写两条反斜线@"c:\\codes"
14、float占4个字节,double占8个字节,long double占16个字节
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次方,如果不能整除,实际返回结果小于除法结果的最大整数)