Swift与OC区别

一.Swift与OC区别:

    1.swift程序的入口是UIApplicationMain;

    2.OC的类是以.h和.m组成的;swift是一.swift结尾的;

    3.OC的类是以@interface和@end开始结尾;swift是采用{};

    4.OC里语句结束以分号(;);swift里不需要分号,添加分号也不会出错;

    5.OC中创建一个视图,采用alloc/init,swift采用();

    6.OC中创建视图采用initWithXXX;swift里变成(XXX:)

    7.swift设置属性,全面采用点语法;

    8.OC中添加视图使用self.view.addSubView;swift添加视图使用view.addSubView,不使用self,为了在闭包里和构造函数里区分会在闭包里和够构造函数里用self;

    9.OC中枚举需要写全,swift中采用type.类型的形式;

    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
原文地址:https://www.cnblogs.com/it-k-50/p/6117386.html