平时收藏将来跳槽用iOS Developer

iOS 小经验 01

2016-09-20  本文已影响28人  Baoy的简书

1.指针分配在栈区,对象分配在堆区

2.除非确实必要,否则不要引入头文件;如果一定要引入,尽量使用“向前声明” @class

3.尽量使用字面量语法

例如 :   NSNumber *someNumber = @1;

NSNumber *doubleNumber = @3.1415926;

NSNumber *boolNumber = @YES;

NSNumber *charNumber = @‘a';

创建数组/字典时也一样,因为字面量语法可以报错

例如: NSArray *array = @[ object_0 , object_1 , object_2 ]; 如果 object_1 为nil ,系统会报错,但是如果使用系统方法就不会。

可变字典:  NSMutableArray *mutable = @[@[@1,@2,@3,@4]mutableCopy ];

4.多用类型常量,少用#define预处理指令

声明局部变量 : 在.m 文件中  static const NSTimeInterval kAnimationDuration = 0.3;

声明全局变量 : 在.h  文件中  extern NSString *const MKMYManagerDidLoginNotification;

在.m 文件中  NSString *const  MKMYManagerDidLoginNotification = @“MKMYManagerDidLoginNotification”;

5.枚举

尽量使用枚举表示状态机的状态

typedef NS_ENUM(NSUInteger , MKMYConnectionState ){

MKMYConnectionStateDisconnected,

MKMYConnectionStateConnecting,

MKMYConnectionStateConnected,

}

typedef NS_OPTIONS( NSUInteger , MKMYPermittedDirection ){

MKMYPermittedDirectionUp = 1 << 0 ,

MKMYPermittedDirectionDown = 1<<1,

MKMYPermittedDirectionLeft = 1<<2,

MKMYPermittedDirectionRight = 1 <<3,

}

第二种一般用于 传递给某个方法的选项为枚举 例如:MKMYPermittedDirection permittedDirections = MKMYPermittedDirectionUp | MKMYPermittedDirectionDown;  要使用第二种

在处理枚举类型的switch语句中不要实现default分支。这样的话,加入新枚举之后,编译器会提示开发者:switch 语句并未处理所有的枚举

github:Baoy

上一篇 下一篇

猜你喜欢

热点阅读