美文网首页
Cocoa代码风格指南之使用规范(四)

Cocoa代码风格指南之使用规范(四)

作者: xuyafei86 | 来源:发表于2016-03-28 09:51 被阅读268次

    代码使用规范实在太多,这里暂时列出部分。一些比较复杂的规范需要单独说明,列表如下。

    1. 整形数的使用规范
    2. 使用CGGeometry方法获取CGRect数据
    3. 属性内存管理相关修饰符的使用规范
    4. 属性声明在implementation与extension的使用规范
    • [Apple] :Apple 明确给出建议
    • [Google] :Google 明确给出建议
    • [General] :通用做法(主观)

    简单使用规范 [Google]

    • 不要在 init 方法中,将成员变量初始化为 0 或者 nil。毫无必要。

    • 仅需要使用 [[Class alloc] init] 来生成对象时,才可以使用 new 来代替。
      Google 在 MRC 下的建议是“不要使用 NSObject 类方法 new,也不要在子类中重载它”,理由是"由于类方法 new 很少使用,这使得有关内存分配的代码审查更困难"。由于在 ARC 下无需担心内存管理的问题,所以在仅需要 [[Class alloc] init] 时也可以使用 new 来代替。

    • 保持公共 API 简单。避免 “厨房水槽(kitchen-sink)” 式的 API。如果一个函数压根没必要公开,就不要这么做。用私有类别保证公共头文件整洁。

    • 当包含一个使用 Objective-C、Objective-C++ 的头文件时,使用 #import 。当包含一个使用标准 C、C++ 头文件时,使用 #include。头文件应该使用 #define 保护。

    • 字符串应使用 copy 属性。

    • 接受 NSString 作为参数的 setter,应该总是 copy 传入的字符串。

    • 使用 nil 的检查来检查应用程序的逻辑流程,而不是避免崩溃。Objective-C 运行时会处理向 nil 对象发送消息的情况。

    • Objective-C 的方法标识符中,只使用 BOOL。

    • 不要直接比较 YES/NO 和 BOOL 变量。不仅仅因为影响可读性,更重要的是 BOOL 为无符号字符型,这样比较的结果可能与你预期的不同。

    BOOL great = [foo isGreat];
    if (great == YES) // 错误
    if (great) // 正确
    
    • 只运行在 iOS 下的代码,优先考虑使用自动 synthesize 实例变量。

    博客:xuyafei.cn
    简书:jianshu.com/users/2555924d8c6e
    微博:weibo.com/xuyafei86

    Github:github.com/xiaofei86

    相关文章

      网友评论

          本文标题:Cocoa代码风格指南之使用规范(四)

          本文链接:https://www.haomeiwen.com/subject/urejlttx.html