美文网首页
iOS 代码规范

iOS 代码规范

作者: LevyHoo | 来源:发表于2017-01-24 15:16 被阅读0次

    简单写了几点,参照了唐巧的类结构和Getter初始化方式。

    iOS 代码规范

    主题

        - 注释规范

        - 类结构

        - 属性初始化

        - 图片命名规则

        - 工程目录结构

        - 宏定义

        - Delegate 定义

        - HTTP 接口定义

    1,注释规范

        1.1 单行注释

            /// 简要描述.

        1.2 多行注释

            /** 简要描述.

            *

            * 详细描述或其他.

            */

    2,类结构

        使用#pragma mark –来分类方法

            #pragma mark – Life Cycle

            #pragma mark - Events

            #pragma mark – Private Methods

            #pragma mark - UITextFieldDelegate

            #pragma mark - UITableViewDataSource

            #pragma mark - UITableViewDelegate

            #pragma mark - Custom Delegates

            #pragma mark – Getters and Setters

    3,属性初始化

        建议直接使用Getter初始化,但不建议在Getter里涉及太多逻辑。

        如果ViewController有多个View部分初始化,建议单独写个用作初始化的方法,例如 _initView OR _initSubview,数据初始化可以单独写作_initData 方便阅读。

    4,图片命名规则

        4.1 建议使用Image Assets管理图片;

             Image Assets能很好区别二倍图和三倍图,并且能更直观的看到图片内容。

        4.2 图片文件命名;

            · 用英文命名,不用拼音

            · 每一部分用下划线分隔

            · 图片名中两倍图在名字最后要加@2x,三倍图在名字最后要加@3x

            规则: 模块 + 类别 + 功能 + 状态

            例如: tab + button + search + normal =  tab_button_seach_normal@2x.png

        4.3 图片文件夹分类尽量按功能模块分类;

    5,工程目录结构

        工程目录结构分为:基础部分+功能模块部分;

         例如:Supporting Files + Resource + Vendor + UI Components + Category + Extendtion + 功能模块(Profile + Login 等等)。

    6, 宏定义

        一般涉及宏定义的部分为工具部分(例如NSLog和获取UIApplication单例),另一部分是涉及http 接口部分,建议区分为不同的宏定义文件,以便于统一管理。

    7,Delegate 定义

        Delegate的命名一定要写清楚Delegate所属,例如UITableview + Delegate;

        Delegate的方法定义时建议遵守Apple的规范,例如:-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

        规则是:传递委托对象 + 传递参数

    8,HTTP 接口定义

        建议直接建一个HttpInterfaceManager类,统一定义针对某一个Server的接口调用,可以用类结构(见同主题2)区分不同模块,如果工程涉及Http接口太多可以考虑按模块分类。

    相关文章

      网友评论

          本文标题:iOS 代码规范

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