iOS 小经验 01

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,899评论 0 9
  • 发现写博客想写明白也是一件不容易的事情。 这次拿YYKIt 源码 分析分析。希望这次能写的更好些。 YYKit 系...
    充满活力的早晨阅读 11,688评论 4 16
  • @(〓〓 iOS-Objective-C精选)[Objective-C 文章精选] 作者: Liwx 邮箱: 1...
    Liwx阅读 5,543评论 0 6
  • 男孩之死 (一) 男孩的母亲生下他...
    杨纯阅读 3,449评论 0 2
  • 目录页:【连载】《诺言深许》目录页 上篇:诺言深许(29) 第30章:暖意动温情 江航出门去买礼物,江远忧心忡忡地...
    叶初夏阅读 3,633评论 22 11

友情链接更多精彩内容