您的位置:首页 > 移动开发 > Swift

Swift接口和扩展

2016-04-12 19:22 363 查看
这里主要说一下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,大家感兴趣的话可以认真看一下哦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息