OC與Swift的主要區別


swift與OC的主要區別就是語法區別,其他大抵相同.

區別1: swift中使用let定義常量,var定義變量.常量一經賦值,不可以進行修改,變量賦值后可更改.

         swift能夠根據右邊的代碼,推倒出該變量的准確類型.

 

在實際開發中 使用常量多還是使用變量多?

使用常量,更加安全,不能夠被修改,在需要對該對象進行修改的時候 在修改為var修飾區別.

 

 

2: swift對數據要求異常嚴格,不會做隱式轉換;

     不同類型之間不能夠直接計算需要手動轉換類型,調用構造函數傳遞參數進行類型轉換

 

區別3: swift中有一大特色,就是optional可選項,定義變量是,如果指定可選項,表示該變量可以有一個指定類型的值,也可以是nil;

 

  1. 聲明: var a: Int?  
  2. '?'表示可選類型或者可選解包,

    在調用可選類型的對象的屬性或者方法的時候會使用可選解包

  3. '!' 表示強行解包 
  4. 獲取可選類型的不為空的值
  5. 強行解包有風險,需要考慮是否安全

'??' 合並空選項

 

  1. 需要使用 () 提高優先級
  2. 如果有值就直接使用,如果沒有就使用 ?? 后面設置的默認值
  3. 判斷字符串 或者基本數據

區別4: swift中構造函數可以重載,就是init的括號內寫一堆參數,OC中代替方式initWithXXX....

 

閉包

 

  • 字符串
    • String 是結構體,更加輕量級,效率更高,支持遍歷,可以和NSString 無縫的轉換 as
    • NSString 集成自NSObject 是對象
    • 字符串的合並
      • 使用 +
      • 使用String()傳參數實例化字符串
      • \() 轉義字符串
      • 格式化字符串 String(format:
    • 字符串的截取
  • 集合
    • let 聲明的是不可變的集合,var 聲明的是可變的集合
    • 數組
      • [XXX]表示數組類型, XXX是某一個類
      • [XXX]() 就能夠實例化空數組
      • [元素1,元素2,....]
    • 字典
      • [key1 : value1, key2 : value2,...]
      • [String : Any] 最常用的字典類型
  • 閉包的基本格式
    • 沒有參數沒有返回值 () -> ()
    • 有參數沒有返回值 (Int, Int) -> ()
    • 有參數有返回值的 (Int, Int) -> Int
      • 尾隨閉包
        • 當函數的最后一個參數是閉包的時候,函數的參數的 '()' 可提前關閉,如果函數只有閉包這一個參數, '()' 可以省略


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM