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
相关文章
相关标签/搜索