Swift开发笔记4.协议Protocal

Swift中的协议就是我们通常所说的接口,它连接了软件和软件模块,非常重要。首先定义一个协议:

protocol CgProtocol {
    
}

协议也有基协议:

protocol CgProtocol : NSObjectProtocol {
    
}

协议是可以多继承的。

现在写一个协议方法,协议方法必须实现。比如我们写一个比较的方法

protocol CgProtocol : NSObjectProtocol {

    func compare(value :Int) ->Bool
}

定义一个类,如果一个类要继承父类,又要遵守协议,那么父类应该放到协议之前,形式如下:

class 类名 : 父类, 协议1,协议2 {

//遵守协议的内容

}

如果接口继承了NSObjectProtocol,那么遵守这个协议的类就应该首先继承NSObejct类,因为按照接口中方法必须被实现的原则,NSObject中实现了NSObjectProtocol中的全部方法。我们实现在类ClassA中遵守接口CgProtocol中的方法:

protocol CgProtocol : NSObjectProtocol {

    func compare(value : Int) ->Bool
}

class ClassA : NSObject,CgProtocol {
    func compare(value : Int) ->Bool{
        return true
    }
}
现在完善compare方法,代码如下:

class ClassA : NSObject,CgProtocol {
    
    var age = 0;
    init(age:Int){
    
    self.age = age
    }
    func compare(value : Int) ->Bool{
        if age > value {
            return true
        } else {
        return false
        }
    }
}

let classA = ClassA(age: 100)
let ret = classA.compare(50)
println("ret is \(ret)")

运行结果如图:

下面来讲一下强行转换的问题,classA遵守CgProtocol协议,我们可以把classA强行转化成CgProtocol,格式如下:

let p1 = classA as CgProtocol



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值