Swift與OC區別

一.Swift與OC區別:

    1.swift程序的入口是UIApplicationMain;swift

    2.OC的類是以.h和.m組成的;swift是一.swift結尾的;閉包

    3.OC的類是以@interface和@end開始結尾;swift是採用{};函數

    4.OC里語句結束以分號(;);swift裏不須要分號,添加分號也不會出錯;繼承

    5.OC中建立一個視圖,採用alloc/init,swift採用();it

    6.OC中建立視圖採用initWithXXX;swift裏變成(XXX:)io

    7.swift設置屬性,全面採用點語法;編譯

    8.OC中添加視圖使用self.view.addSubView;swift添加視圖使用view.addSubView,不使用self,爲了在閉包裏和構造函數裏區分會在閉包裏和夠構造函數裏用self;效率

    9.OC中枚舉須要寫全,swift中採用type.類型的形式;select

    10.OC裏的方法是採用@selector;swift採用」方法名」形式;構造函數

    11.swift中的枚舉能夠省略前面的tyoe,直接採用點語法,只能提示不太好;

    12.OC中打印使用NSLog,swift使用print;

    13.等號左右兩邊最號用對等的空格;

二,swift和oc在runtime的區別

swift是靜態語言。在編譯時就肯定了類型。oc是在運行的時候知道類型的。swift的效率要高一些。swift不建議使用runtime

 

 

  • 純Swift類沒有動態性,但在方法、屬性前添加dynamic修飾能夠得到動態性。
  • 繼承自NSObject的Swift類,其繼承自父類的方法具備動態性,其餘自定義方法、屬性須要加dynamic修飾才能夠得到動態性。
  • 若方法的參數、屬性類型爲Swift特有、沒法映射到Objective-C的類型(如Character、Tuple),則此方法、屬性沒法添加dynamic修飾(會編譯錯誤)
  • Swift類在Objective-C中會有模塊前綴
  • http://www.infoq.com/cn/articles/dynamic-analysis-of-runtime-swift
相關文章
相關標籤/搜索