您的位置:首页 > 移动开发 > Objective-C

学习Objective-C 高效编程

2015-06-05 00:02 477 查看
读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.多用枚举表示状态

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  objective-c