- OC中class 的定义是这样的: typedef struct objc_class *Class;
从这里我们知道,Class是一个结构体,里面保存了类相关的信息。
Swift中 class 代表类
- Swift中 {} 就是作用域
- override 就是对父类已有方法的重写
- func 定义函数的时候使用, 代表定义一个函数
- Swift中 没有了.h和.m文件,都是采用.swift结尾的文件
- Swift中 没有了main.m文件, 相应的程序入口在AppDelegate.swift中的@UIApplicationMain代替
- 初始化方法的不同:
OC alloc init == Swift ()
OC allco initwithXXX == Swift (XXX:)
- 代码结束没有分号, 写了也没问题, 但属于画蛇添足
_ 占位符, 如果单单声明个对象, 并没有使用它, 就会报错, 这时会提示你使用占位符来代替他.
报错说明
- OC中 [类名 类方法] == Swift中 类名.类属性
- 如果类内部使用其属性, self.可以省略不写; 闭包中必须使用self, 且注意循环引用.
- 项目开发阶段, 一般情况下采用点语法, []一般只有在数组和字典中使用
- Swift中 控制台打印使用print(), 效率比NSLog高
selector方法的使用区别:
Swift中 用#, 且监听方法传递参数时不带冒号
Swift中selector
OC中 使用@, 且传递参数时必须添加冒号
- 自定义函数方法的时候, 根据需要, 可能需要在func 前面要加上@objc, 告诉编译器它是一个OC的方法.
- 使用 print(#function) 来打印方法名称
- Swift中类方法以class开头
最后, 以上内容如有问题, 欢迎指正, 或者有其他的问题, 也欢迎留言讨论~
网友评论