这里主要说一下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.
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。