美文网首页
iOS 编码规范和编码习惯

iOS 编码规范和编码习惯

作者: Sparkle_S | 来源:发表于2018-11-03 16:23 被阅读0次
    • 使用4个空格进行缩进。(可在Xcode的Preferences中进行设置)
    • 左大括号写在首行。eg:
    class TestClass {
        /* ... */
    }
    
    • 二元运算符前后添加空格。eg:
    let testValue = 1 + 2
    
    • 添加有必要的注释(使用Xcode注释快捷键)。eg:
    // 测试按钮
    var testBtn:UIButton
    /// <#Description#>
    ///
    /// - Parameter testValue: <#testValue description#>
    /// - Returns: <#return value description#>
    func testFunction(testValue: Int) -> Int {
        /*...*/
    }
    
    • 图片命名要清晰。eg:


      与功能相对应命名图片
    • 变量命名应该能推断出该变量类型,或以变量类型结尾。eg:
    let coverImageView: UIImageView
    let firstName: String
    
    • 接口命名与后台所提供的保持一直,由请求路径、接口名和请求后缀组成。 eg:


      GetVipColors接口.jpg
    • 接口的请求建议一次封装多处使用,尤其是像获取用户信息这种。eg:


      对GetVipColors接口的封装.jpg
    • 类型多时使用枚举,枚举名字和功能对应 eg:
    /// 房间类型
    ///
    /// - common: 普通模式
    /// - handPattern: 相亲
    /// - pkPattern: 团战
    enum RoomShowType:String {
        case common = "common"
        case handPattern = "hand_pattern"
        case pkPattern = "pk_pattern"
    }
    
    • 可选型使用guard或者if let解包后使用。eg:
    // guard 解包
    guard let giftView = giftViewArr[toMicId] else {return}
    // if let 解包
    if let giftView = giftViewArr[toMicId] {
    }
    // if let 解包多个
    if let subview = subview, let volume = volume {
    }
    
    • block的执行如果存在延迟,需要用weak来规避强引用。 eg:
    DispatchQueue.main.asyncAfter(deadline: .now() + 2) { [weak self] in
        if let weakself = self{
            weakself.rainLayer.birthRate = 0
        }
    }
    
    • 使用// MARK: - XXX进行分组。eg:
    /// MARK: - System
    // MARK: - Public
    // MARK: - Action
    // MARK: - Private
    // MARK: - xxxDelegate
    
    • 控制代码段大小(比如有一个100行的代码块,其中50行代码是实现了某个动画,则把这50行代码封装为另一个代码块)
    • 较大功能或逻辑的修改,最好标记一下。eg:
    // modified by FangLin 2018-01-01
    
    • 在取可变数组中的元素时,要考虑数组越界的情况。
    • 修改后的代码要进行编译验证。

    相关文章

      网友评论

          本文标题:iOS 编码规范和编码习惯

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