您的位置:首页 > 移动开发 > Swift

swift-protocol

2016-02-03 09:00 471 查看
import Foundation

//定义 一个协议
//遵守 基协议  可以 遵守多个  继承 协议

protocol WorkProtocol {
func work()//必须要实现的
}

//定义 可选的 必须加 @objc  和 oc 兼容

//如果协议遵守了基协议 那么  遵守协议的类要继承NSObject类
@objc protocol BuyWoodProtocol:NSObjectProtocol {
//默认必须要实现
func buyWoodWithWeight(w:Int) ->Void

//可选的 可以实现也可以不实现 optional 以前版本 是@optional
optional func song()
optional func driveCar()

}

@objc protocol NewProtocol {
optional func jump()

}

class Person :NSObject,BuyWoodProtocol,NewProtocol {
var age  = 0
init (age:Int) {
self.age = age
}
//必须实现协议中的方法
func buyWoodWithWeight(w: Int) {
Swift.print("buyWood:\(w) t")
}

func print(){
Swift.print("print")
}

//可以实现可选的方法
func song() {
Swift.print("song")
}
}

//定义一个对象

let xiaohong = Person(age: 100)
xiaohong.print()

//强制 转化为 遵守协议的对象
//as 强制转化引用对象类型

let delegate = xiaohong as BuyWoodProtocol
//delegate 就可以调用协议中的方法

//执行协议中的方法
delegate.buyWoodWithWeight(1000)

//可选的方法  不能直接调用  要用可选值
//如果有就调用 没有就不调用返回nil
delegate.song?()

delegate.driveCar?()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: