前言:
要了解 Swift(SwiftUI),查阅开发者文档是必不可少的方法,但是开发者文档并不直观,难以直接查到想要的信息。改进的一种方法是,在编辑器中,对想要获得帮助的命令代码,右键找到Show Quick Help,这样可以快速得到用法。直接在开发者文档里面关键词其实并不推荐,因为它可能会跳出太多用法了。
入口:
在上方栏的 help 处找到 Developer Documentation,弹出窗口的左上角可以选择Swift语言(还有Objective-C,Other选项可以选择)。
主要内容:
实际上,在这篇文章中我想说明的是开发者文档中的“Article”说明,它往往综合性概述了一个模块,例如 Swift-SwiftUI-Data and stroage-Model data这一个模块中的基本内容,如下图所示:
‘Article’类型的说明前面有一个‘折角文档’的图标,此外,‘S‘表示这是一个 Structure,‘Pr’表示这是一个 Protocol,’M‘表示这是一个 Instance Method。此外可能会见到‘E’(表示 Enumeration),'P'表示 instance property,或者是 Type Property。(我一直在想怎么翻译“Property”这个词比较好,也许是“实质”)。
之前在哪里读到一句话:Swift是一种更偏向于 Struct 而非 Class 的语言,随便浏览了一番,似乎的确是这样。
大家也可以仔细看看开发者文档的目录结构,大章节分为:“Essentials”、“App structure”、“Data and storage”、“Views”、“View layout”、“Event handling“、 ”Accessibility“、”Framework integration“、”Tool support“ 几个部分,对 SwiftUI 的框架有个基本的认知。(其实看文档也还是好多内容,从算法跑到前端也确实比较麻烦,我的入门是从官方 tutorial 那个 landmarks app 开始的。)
后言:
关于实例(instance),其实我有点混淆,可能自己是C++出身的缘故,个人觉得其实 instance 是一个相对概念,它可以出现在未被实体化的 Struct 之中,例如下面代码:
import SwiftUI
Struct LandmarkList:View{
Var body:some view{
Text("Hamlet")
.font(.title)
}
}
Text("Hamlet") 虽然还未分配内存资源,但是它在语境中已经是“instance”了,而.font()被称为 instance method。其实.font()是使用Func定义的内部方法,接受font类型的数据(即.title其实一个常量Font(结构体)数据),返回Text类型.
func font (_ font:Font?)->Text // font的声明
static let title: Font()// .title的声明
与instance容易混淆的概念还有property,它的语意更倾向于“内部”,“未赋值的”(这个有吗?不好说)(这里我日后再补充一下...)