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 次方,如果不能整除,实际返回结果小于除法结果的最大整数)