Chapter 1
Apple’s Cocoa (for OS X) 和 Cocoa Touch (for iOS) toolkits 都是用 Objective-C写的.
Chapter 2
(1) .m 代表 “messages”的缩写
.m -> Object-C compiler .c -> C compiler .cpp -> C++ compiler
(2)在 Objective-C中, #import 保证了每个头文件只被包含一次,如同c中的#ifdef头文件卫士的作用一样。
#import <> // 系统头文件
#import " " // 用户自定义头文件
(3)NSLog()如同 C中的printf(),不过增加了时间和日期戳,并自动在行尾加了“ "换行符。
@(" ")表示" "中的字符串被当做一个NSString单元来处理。在NSLog中如果直接使用了C风格的字符串”“而缺少@(),则在编译时得到一个warning,运行时会crash。
(4)BOOL 类型
在Objectvie-C中,BOOL类型是实际上是一个signed char的typedef,因此不仅可以用YES(值=1)和NO(值=0)表示C中的true和false,而且可以存放其他的值。这里会有一个易错点:如果将一个short或int等类型的值赋给BOOL变量后,会截断末尾的8位,如果这末尾8位值刚好为0(如8960,其十六进制值为 0X2300),此值的BOOL值就是0,即NO,而不是非NO了。
Chapter 3
(1)计算机科学的核心思想:Indirection。Instead of using a value dirctly in your code, use a pointer to the value; Instead of doing something by yourself, ask another person to do it.
(2)一个文件读取示例:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { if(argc == 1) { NSLog (@"You need to provide a file Name"); return (1). } FILE *wordFile = fopen(argv[1], "r"); // argv[0] is the code file path char word[100]; while(fgets(word, 100, wordFile) { // strip off the trailing word[strlen(word) - 1] = '