学习Objective-C 高效编程

来源:互联网 发布:sql sum函数 编辑:程序博客网 时间:2024/06/01 17:44

读Effective Objective-C总结

1.在类的头文件中尽量少的引用其他头文件

如果在一个类A中定义了一个类B的属性,事实上他并需要知道B的实现,因此,只需在类A的m文件中加入头文件即可,这也是引用头文件的一个原则,引用头文件的时机尽量延后,那么我门需要解决编译通过的问题,前向声明,或者叫做向前声明,即在类A的h文件中声明class B即可,这也是解决交叉编译常用的手段。那么什么时候才在A的头文件引用B的头文件呢,记住一条原则,只有我门需要用到B的实现细节的时候才这么做。那么这么好处可以减少编译时间,降低类之间的耦合。

2.多用字面变量

如定义一个NSNumber *number= [NSNumber numberWithInt:2]
可以用这种方法,NSNumber *number = @2;
这是字面变量的一种,是不是感觉代码很简洁。
类似的还有很多
比如

       NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];        NSArray *array = @[@"a", @"b", @"c"];

第二种明显清晰的多,因此我门初始化数组都建议用字面量的写法
可是此时也应该注意这种情况

        NSString *a = @"a";        NSString *b = nil;        NSString *c = @"c";        NSArray *arrayA = [NSArray arrayWithObjects:a, b, c, nil];        NSArray *arrayB = @[a, b, c];

arrayWithObjects:初始化时,遇到nil便会停止,而字面辆定义的方式怎么出现程序异常。

        NSDictionary *dictA = [NSDictionary dictionaryWithObjectsAndKeys:@"name", @"value1", nil];        NSDictionary *dictB = @{@"name":@"value"};

上述情况是不是dictB更直观一些

以下两种是编程中注意的

3.多用类型常量,少用#define

4.多用枚举表示状态

0 0
原创粉丝点击