zoukankan      html  css  js  c++  java
  • 总结swift2.0 到swift3.0 语法等变更

    最近开发完OC的项目,开始搞Swift ,2016年从开发OSX应用 到OC应用 再回归到Swift,回头看已经到Swift3.0了。之前在开发Swift的时候还在1.2 到2.0的切换中。

    下面给自己总结一下变化:

    1. 监听方法:
     swift 3.0 ->  #selector  如果带参数,不需要使用“:”
     swift2.0 -> ""
     OC ->  @selector
     eg: button.addTarget(self, action: #selector(click), for: .touchUpInside)
    2. OC -> __FUNCTION__
       swift3.0 -> #function
    3. swift3.0  -> 设置color 可以直接 color 之后回车,选择需要的颜色,或者修改颜色。
    显示如下:  
    
    本质代码如下:
     eg: testView.backgroundColor = #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1)
    4.Swift3.0 将大量的Class 转化为Struct,不存在基本类型,都是结构体。
    eg:public struct Double {
     5.  可选项:Optional   变量可以有指定类型的值,也可以是nil, nil 不是任何数据类型,不能参与计算。
         ! 强行解包。 从可选之中强行获取对应的非空值,如果值为nil ,就会奔溃。
         var 的可选值 默认为nil
         let 的可选值 没有默认值
     6.  ?? 是个三目运算
         如果有值,使用值
         如果没有值,使用?? 后面的值替代
    /******
      7.   Switch
            1.可以针对任意类型的值进行分支,不再局限于整数。
            2.switch 一般不需要 break
            3.switch 如果要多值,使用“,”
    4.所有的分支至少需要一条指令,如果什么都没有操作,使用break
    5.case 条件中可以使用where 语句 **
    */ func demoSwitch1(str: String) -> String { switch str { case "demo": print(str) return str case "ceshi","Ceishi": print(str) return str case "ni": print(str) return str case "hao": print(str) return str default: print("没有匹配到值") return "没有匹配到值" } }
     /**
     8.    For 循环
          1.传统的for 循环,在swift3.0中被取消
          2.i++ ++i从swift3.0被取消 使用i += 1
          3.在使用过程中要注意空格的使用。
          4.for 循环 反转使用reversed()
         **/
        func forDemo1()  {
            for i in 0..<10 {
                print(i)
            }
            print("------------")
            for i in 0...10 {
                print(i)
            }
    
            //for 循环 反转
            for j in (10...30).reversed() {
                print(j)
            }
        }
    /**
      9. 字符串
         1. 长度lengthOfBytes() 方法,返回的是字节数量。UTF8中,每个汉字是3个字节。
         2. .characters.count 返回字符的个数。
         3. 使用NSSting 中转获得长度
         
         
         **/
    
        func demoStr1(str: String) {
            let  string = "测试String的 循环遍历"
            print(string.lengthOfBytes(using: .utf8)) //28
            print("字符的个数是:",string.characters.count) //14
            for c in string.characters {
                print("****",c)
            }
            print((string as NSString).length) //14
        }
  • 相关阅读:
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    简单DP + 高精
    高精度计算
    树 (tree)
  • 原文地址:https://www.cnblogs.com/741162830qq/p/6269518.html
Copyright © 2011-2022 走看看