Skip to Main Content
iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
book

iOS 编程基础:Swift、Xcode 和Cocoa 入门指南

by Matt Neuburg
January 2017
Intermediate to advanced content levelIntermediate to advanced
552 pages
9h 43m
Chinese
China Machine Press
Content preview from iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
对象类型
177
func tellGetWorm(f:Flier) {
(f as? Bird)?.getWorm()
}
4.8.3
声明协议
只能在文件顶部声明协议。要想声明协议,请使用关键字
protocol
,后跟协议名;作为
一种对象类型,协议名首字母应该是大写的。接下来是一对花括号,里面可以包含如下
内容:
属性
协议中的属性声明包含了
var
(不是
let
)、属性名、冒号、类型,以及包含单词
get
get set
一对花括号。对于前者来说,使用者对该属性的实现是可写的;
对于后者来说,它需要满足如下规则:使用者不可以将
get set
性实现为只读计
算属性或常量
let
)存储属性。
要想声明静态
/
类属性,请在前面加上关键字
static
。类使用者可以将其实现为类
属性。
方法
协议中的方法声明是个没有函数体的函数声明,即没有花括号,因此也没有代码。
任何对象函数类型都是合法的,包括
init
与下标(在协议中声明下标的语法与在对
象类型中声明下标的语法是相同的,只不过没有函数体,就像协议中的属性声明一样,
它也可以包
get
get set
)。
要想声明静态
/
类方法,请在前面加上关键字
static
。类使用者可以将其实现为类
方法。
如果方法(由枚举或结构体实现)想要声明为
mutating
,那么协议就必须指定
mutating
指令;如果协议没有指定
mutating
,那么使用者将无法添加。不过,如果
协议指定了
mutating
,那么使用者可以将其省略。
类型别名
协议可以通过声明类型别名为声明中的类型指定局部同义词。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

Aurélien Géron
Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Mars Geldard, Jonathon Manning, Paris Buttfield-Addison, Tim Nugent

Publisher Resources

ISBN: 9787111556350