最近又翻了几遍 <<effective objective-c>> 感觉有好些东西 时间久了 就忘记了。 所以决定写一些总结 不尽详细 单提纲领 帮助记忆。
1.写法 习惯
1.分清楚 #Import #include @class区别 防止“循环引用”造成的编译问题 简而言之 降低类耦合
2.字面量语法(literal syntax) 对于 字符串 数组 字典等对象的创建 尽量不要去调用方法
ex: NSString *str = @" csdn blog";
NSNumber *num = @1;
NSArray *array = @[@"mon",@"tue",@"thirs"]; //好处是不用加nil 如果出现nil 编译的时候就会报错
同时也要引申一下 关于 arrayWithObjects: 的用法 当arrayWithObjects创建array的时候 如果遇到nil 就会退 出 比如[NSArrayarrayWithObjects: object1,object2,object3,nil]; 如果object2 是nil 也会创建成功 但是只有 object1 一个元素。
NSDictionary *dict =@[@"object1":@"key1",@"object2","key2"];
访问dict NSString *str =dict[@"key1"];
NSMutableDictionary *mudict = dict; mudict[@"key1"]=@"object1";
字面量只能创建不可变的对象,如果想要可变的 只有再copy一份
3.多用类型常量 少用#define
原因 #define的话不包含类型信息 随时可能被修改(重新定义)
类型常量 多使用 static const extern 等关键字
4.用枚举标示状态机 枚举值可以用二级制或者按位操作组合 (待补充)