美文网首页Apple
iOS相关 | Swift相关的注意点

iOS相关 | Swift相关的注意点

作者: JasonL | 来源:发表于2018-05-21 17:58 被阅读3次

    一、swift基本使用
    1.1 常量和变量
       let 定义常量,一经赋值不允许再修改
       var 定义变量,赋值之后仍然可以修改
    注意:
       1.应该尽量先选择常量,只有在必须修改时,才需要修改为 var
       2.在 Xcode 7.0 中,如果没有修改变量,Xcode 会提示修改为 let

    1.2 可选项Optional
       1) 定义变量时,如果指定是可选的,表示该变量可以有一个指定类型的值,也可以是 nil
       2) 定义变量时,在类型后面添加一个 ?,表示该变量是可选的
       3) 变量可选项的默认值是 nil
       4) 常量可选项没有默认值,主要用于在构造函数中给常量设置初始数值
       5) 如果 Optional 值是 nil,不允许参与计算,只有解包(unwrap)后才能参与计算,在变量后添加一个 !,可以强行解包
    注意:必须要确保解包后的值不是 nil,否则会报错
       6) ?? 运算符可以用于判断 变量/常量 的数值是否是 nil,如果是则使用后面的值替代
    在使用 Swift 开发时,?? 能够简化代码的编写
    例:
    let = "\(str ?? "")" + "...." //如果str为nil时赋值为"" ,如果不为nil时取str

    1.3 控制流
       guard:guard 是与 if let 相反的语法,Swift 2.0 推出的.使用 guard 的好处:能够判断每一个值;在真正的代码逻辑部分,省略了一层嵌套

    二、闭包
    闭包(Block) 的循环引用小结

    Swift

    [weak self]

    self是可选项,如果self已经被释放,则为nil

    [unowned self]

    self不是可选项,如果self已经被释放,则出现野指针访问

    Objc

    __weak typeof(self) weakSelf;

    如果self已经被释放,则为nil

    __unsafe_unretained typeof(self) weakSelf;

    如果self已经被释放,则出现野指针访问

    相关文章

      网友评论

        本文标题:iOS相关 | Swift相关的注意点

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