LaneBlog

蝼蚁虽小,也有梦想

PHP Socket服务 | PHP微信开发框架 | 开源博客

初探Swif十 - 协议

Clicks: 3769 Date: 2015-01-21 10:14:44 Power By 李轩Lane

swift ios

    

    初探Swift,Swift协议,Swift接口,它是一种约定,实现这个接口的类必须要实现这个接口中所定义的所有方法。协议(Protocol),同PHP的接口(interface)。

/**

 * 协议(Protocol),同PHP的接口(interface)

 */

protocol MyProtocol{

    //变量可读可写

    var myName:String {

        get set

    }

    //定义变量,只读

    var myAge:Int{

        get

    }

    func getMyName()->String

}

//继承的父类一定要写在最前面,然后用,分割,后面跟协议,多个协议用,分割

class MyClass : MyProtocol{

    var m_name:String = ""

    var myName:String {

        get{

            return "lane"

        }set{

            m_name = newValue

        }

    }

    var myAge:Int{

        get{

            return 24

        }

    }

    

    func getMyName()->String{

        return "hello Lane"

    }

}


/**

* 协议类型

*/

var varProtocol:MyProtocol = MyClass()

varProtocol.myName


/**

* 协议继承

* 要实现子协议和父协议的全部内容才可以

*/

protocol ChildMyProtocol:MyProtocol{

    func getMyAge()->Int

}

class MyClass2 : ChildMyProtocol{

    var m_name:String = ""

    var myName:String {

        get{

            return "lane"

        }set{

            m_name = newValue

        }

    }

    var myAge:Int{

        get{

            return 24

        }

    }

    

    func getMyName()->String{

        return "hello Lane"

    }

    

    func getMyAge() -> Int {

        return 20;

    }

}


/**

* 协议合并

*/

func hello(s:protocol<MyProtocol, ChildMyProtocol>)


©2014 www.lanecn.com , All rights reserved. Power By Li Xuan.  京ICP备14005030号