swift篇第三期:類、枚舉、結構體

來源:互聯網
上載者:User

標籤:ios swift


首先我們來建立一個類吧,然後在裡面聲明屬性與方法

 class BaseUser {    var userName:String = "swh"    var password:String = "123"        //這裡面有一個構造方法,其實就類似我們重寫init方法一樣,然後可以加些參數    //但是我們在聲明該類的時候直接在類名後面接括弧就可以了哦    init(username:String, password:String) {        self.userName = username        self.password = password    }        var name:String {    //下面是set方法的兩種定義        set (value) {            self.userName = value            println("method set")        }//        set {//            self.userName = newValue//            println("method set")//        }        get {            println("method get")            return self.userName        }    }        func toString()-> String {        return "username:\(self.userName):\(self.password)"    }}


這時候我們來調用對應的屬性與方法

 //聲明並初始化var user = BaseUser(username: "kutian", password: "123456")println(user.toString())user.name = "kutian"println("\(user.name)  \(user.password)")


接下來,我們繼續建立一個類來繼承之前的類

繼承,跟大家想的沒聲明區別

 class AdminUser: BaseUser {    var managerModel:String = "爐石傳說"        override func toString() -> String {        return "爐石傳說"    }}var adminUser = AdminUser(username: "swh", password: "123")println(adminUser.toString())


好啦,接下來我們建立枚舉

我們可以直接賦值,也可以弄一個方法,讓它返回新值

 enum Suit:String {    case Spades = "黑桃", Hearts = "紅桃", Diamonds = "方塊", Clubs = "梅花"    func toString()-> String {        switch self {        case .Spades:            return "黑桃"        case .Hearts:            return "紅桃"        case .Diamonds:            return "方塊"        case .Clubs:            return "梅花"        default :            return "鬼牌"        }    }}


然後調用枚舉裡面涉及到的一些方法

這裡面有新的rawValue還有!是把任意nil轉為正常的哦

 var suit = Suit.Heartsprintln(suit.rawValue)let tempSuit = Suit(rawValue: "梅花")println(tempSuit!.rawValue)


我們也可以建立一個類,並在裡面聲明某個屬性是枚舉類型

好啦,我們來建立一個結構體吧

 struct Hero {    static var isGirl:Bool = false    var rank:Rank    var name:CompassPointType        func toString()-> String {        return "\(name):\(rank.rawValue)"    }}


其實它跟類還是差不多的,只是它傳值的時候並不涉及傳地址哦

然後我們來寫個協議吧

 protocol SimpleProtocol {    var value:String {get}        func toString()-> String    mutating func update()} protocol BaseProtocol {    func equal()-> Bool}class SuperClass {    var name:String = "swh"}


接下來建立一個類來遵循並實現這個協議

 class SubClss: SuperClass, SimpleProtocol, BaseProtocol {    var value:String = "defalut"        func toString()-> String {        return value    }        func update() {        value = "new value"    }        func equal() -> Bool {        return false    }}


再接下來,我們再寫一個擴充好了

 class Rect {    var width:Int = 50    var height:Int = 100}extension Rect:BaseProtocol {    func area()-> Int {        return width * height    }        func equal() -> Bool {        return height == width    }} extension Int {    func toString()-> String {        return "你猜"    }}

類和協議就比較好理解了,與O-C沒有什麼區別的哦


OK,就這麼多咯


本文出自 “東軟iOS校友群的技術部落格” 部落格,請務必保留此出處http://neusoftios.blog.51cto.com/9977509/1673824

swift篇第三期:類、枚舉、結構體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.