首页 > Swift,IOS开发 > Swift-协议(protocol)(一)

Swift-协议(protocol)(一)

Swift中的协议 protocol很像其他面向对象语言中的 接口 interface / 抽象类 abstract

协议是为方法、属性等定义一套规范,没有具体的实现。
协议能够被类、枚举、结构体等具体实现(或遵守)。利用符号: 符号:在这里相当于其他语言当中的 implements

定义:

protocol SomeProtocol {
    // 协议内容
}

实现:
在类,结构体,枚举的名称后加上协议名称,中间以冒号:分隔即可实现协议;实现多个协议时,各协议之间用逗号分隔

class SomeClass: FirstProtocol, AnotherProtocol {
    // 实现协议内容
}

当某个类含有父类的同时并实现了协议,应当把父类放在所有的协议之前

协议内的属性定义要求:
协议能够要求其遵循者必须含有一些特定名称和类型的实例属性(instance property)或类属性 (type property),也能够要求属性的(设置权限)settable 和(访问权限)gettable,但它不要求属性是存储型属性(stored property)还是计算型属性(calculate property)。

通常前置var关键字将属性声明为变量。在属性声明后写上{ get set }表示属性为可读写的。{ get }用来表示属性为可读的。即使你为可读的属性实现了setter方法,它也不会出错。

protocol SomeProtocol {
    var musBeSettable : Int { get set }
    var doesNotNeedToBeSettable: Int { get }
}

上一篇: Xcode7 真机调试“Could not find Developer Disk Image”解决方法

下一篇: Linux下无法识别Intel Dual Band Wireless-AC 3165模块