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)")

运行结果如图:

Swift开发笔记4.协议Protocal

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

let p1 = classA as CgProtocol



上一篇:swift语言IOS8开发战记11 Set NavigationController


下一篇:Python中的时间日期转换