swift 关键字

@objc

根本问题要追到OC——Swift互调用的点上,在OC使用的过程中我们都知道是基于运行时的,那么在swift使用过程中,因为swift追求性能所以就不可能在运行时去查找这个类。 也就是说Swift 类型的成员或者方法在编译时就已经决定,而运行时便不再需要经过一次查找,而可以直接使用。那么在Swift调用OC时没有问题,如果OC调用swift代码的时候怎么办呢??

解决起来也很简单,在 Swift 类型文件中,我们可以将需要暴露给Objective-C使用的任何地方 (包括类,属性和方法等) 的声明前面加上@objc修饰符。注意这个步骤只需要对那些不是继承自NSObject的类型进行,如果你用 Swift 写的 class 是继承自NSObject的话,Swift 会默认自动为所有的非 private 的类和成员加上@objc。这就是说,对一个NSObject的子类,你只需要导入相应的头文件就可以在objective-c里使用这个类了。

@available 和 #available

Swift 2.0 中,引入了可用性的概念。对于函数,类,协议等,可以使用@available声明这些类型的生命周期依赖于特定的平台和操作系统版本。而#available用在判断语句中(if, guard, while等),在不同的平台上做不同的逻辑。

@available放在函数(方法),类或者协议前面。表明这些类型适用的平台和操作系统。

#available用在条件语句代码块中,判断不同的平台下,做不同的逻辑处理

Initializers

构造过程是为了使用某个类、结构体或枚举类型的实例而进行的准备过程。这个过程包含了为实例中的每个存储型属性设置初始值和为其执行必要的准备和初始化任务。

构造过程是通过定义构造器(Initializers)来实现的,这些构造器可以看做是用来创建特定类型实例的特殊方法。与Objective-C中的构造器不同,Swift的构造器无需返回值,它们的主要任务是保证新实例在第一次使用前完成正确的初始化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容