加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift接口和扩展

发布时间:2020-12-14 02:35:42 所属栏目:百科 来源:网络整理
导读:这里主要说一下swift中的接口,其中类、结构体和枚举都可以实现接口。下面通过代码来分别实现一下 // // ViewController.swift // swiftDemo // // Created by Jack on 16/4/6. // Copyright ? 2016年 Jack. All rights reserved. // protocol ExampleProtoc

这里主要说一下swift中的接口,其中类、结构体和枚举都可以实现接口。下面通过代码来分别实现一下

//
// ViewController.swift
// swiftDemo
//
// Created by Jack on 16/4/6.
// Copyright ? 2016年 Jack. All rights reserved.
//

protocol ExampleProtocol {
    var simpleDescription: String { get }
    mutating func adjust()
}


import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view,typically from a nib.


    //类、枚举和结构体都可以实现接口。

        class SimpleClass: ExampleProtocol {   //类实现接口
            var simpleDescription: String = "A very simple class."
            var anotherProperty: Int = 69105
            func adjust() {
                simpleDescription += " Now 100% adjusted."
            }
        }
        let a = SimpleClass()
        a.adjust()
        let aDescription = a.simpleDescription
        print(aDescription);
        struct SimpleStructure: ExampleProtocol {  //结构体实现接口
            var simpleDescription: String = "A simple structure"
            mutating func adjust() {
                simpleDescription += " (adjusted)"
            }
        }
        var b = SimpleStructure()
        b.adjust()
        let bDescription = b.simpleDescription
        print(bDescription);

        enum MyEnum: ExampleProtocol {  //枚举实现接口

            case Earth,Moon,Mars

            var simpleDescription: String {
                get {
                    switch self {
                    case .Earth:
                        return "earth"
                    case .Moon:
                        return "moon"
                    case .Mars:
                        return "mars"
                    }
                }
            }
            mutating func adjust() {
                switch self {
                case .Earth:
                    self = .Moon
                case .Moon:
                    self = .Mars
                case .Mars:
                    self = .Earth
                }
            }
        }

        var myEnum = MyEnum.Earth
        print(myEnum.simpleDescription)
        myEnum.adjust()
        print(myEnum.simpleDescription)
        myEnum.adjust()
        print(myEnum.simpleDescription)
        myEnum.adjust()
        print(myEnum.simpleDescription)




    }





    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

其中,最后一个枚举实现接口是书中的一个练习题,好不容易从网上找到的一个demo,大家感兴趣的话可以认真看一下哦

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读