翻译细节与 markdown 统一格式修改 (#779)

* 修正全角逗号、句号的使用

* 修正逗号使用

* 修正一处代码空格错误

* 修正斜体范围,引用的空格使用

* 修正示例代码错误

* 修正标点,修正示例代码

* 修正标点

* 修正标点

* 添加 Swift 3.1 的更新

* 修改 Swift 3.0.1 位置

* 添加 Swift 4.0.3 更新

* 添加 Swift 4.1 更新

* 修正示例代码

* 修正 markdown 引用语法,优化翻译语句

* 修正示例代码

* 修正标点使用,优化翻译语句

* 修正示例代码

* 修正示例代码

* 优化翻译语句,修正示例代码语法

* 更新示例代码以符合 Swift 4.1

* 优化 markdown 引用格式的使用

* 优化 markdown 行内代码块使用,代码块与正文使用空格分隔

* 人工校验 markdown 行内代码块使用

* 中英文空格分隔

* 移除行末空格

* 人工校验 markdown 行内代码块使用

* 修正 markdown 无序列表使用
This commit is contained in:
BqLin
2018-04-14 10:32:56 +08:00
committed by 安正超
parent 78e2e93ae0
commit c4e5f11769
48 changed files with 2414 additions and 2386 deletions

View File

@ -5,15 +5,15 @@
如果您之前没有接触过权限控制,先来听一个小故事:
> 小明是五道口工业学院的一个大一新生,最近他有点烦恼,因为同屋经常用他的热水壶,好像那是自己家的一样,可是碍于同学情面,又不好意思说。直到有一天,他和学姐小K吐槽。
> 小明是五道口工业学院的一个大一新生,最近他有点烦恼,因为同屋经常用他的热水壶,好像那是自己家的一样,可是碍于同学情面,又不好意思说。直到有一天,他和学姐小 K 吐槽。
> 学姐听了之后大学集体生活里面大部分东西都是默认室友可以共用的。如果你不想别人拿我可以帮你做封印只要打上private标记它们就看不到你的东西更加用不了你的东西了。
> 学姐听了之后,说:大学集体生活里面,大部分东西都是默认室友可以共用的。如果你不想别人拿,我可以帮你做封印,只要打上 private 标记,它们就看不到你的东西,更加用不了你的东西了。
> 小明说哇靠学姐你还会妖法......
Swift语言从Xcode 6 beta 5版本起加入了对权限控制Access Control的支持。其实权限控制和小明的物品一样你可以设定水壶是只有自己能用还是只有宿舍里的人能用还是全校都可以用。
Swift 语言从 Xcode 6 beta 5版本起加入了对权限控制Access Control的支持。其实权限控制和小明的物品一样你可以设定水壶是只有自己能用还是只有宿舍里的人能用还是全校都可以用。
从此以后你可以好像神盾局局长一样完全掌控自己的代码块的”保密级别“哪些是只能在本文件引用哪些能用在整个项目里你还可以发挥大爱精神把它开源成只要导入你的框架大家都可以使用的API。
从此以后,你可以好像神盾局局长一样,完全掌控自己的代码块的”保密级别“,哪些是只能在本文件引用,哪些能用在整个项目里,你还可以发挥大爱精神,把它开源成只要导入你的框架,大家都可以使用的 API。
这三种权限分别是:
@ -23,29 +23,29 @@ Swift语言从Xcode 6 beta 5版本起加入了对权限控制Access Contro
- #####internal 内部的
标记为internal的代码块在整个应用App bundle或者框架framework的范围内都是可以访问的。
标记为 internal 的代码块在整个应用App bundle或者框架framework的范围内都是可以访问的。
- #####public 公开的
标记为public的代码块一般用来建立API这是最开放的权限使得任何人只要导入这个模块都可以访问使用。
标记为 public 的代码块一般用来建立 API这是最开放的权限使得任何人只要导入这个模块都可以访问使用。
如果要把所有的爱加上一个期限噢不是给所有的代码块都标记上权限不累死才怪。还好swift里面所有代码实体的默认权限都是最常用的internal。所以当你开发自己的App时可能完全不用管权限控制的事情。
如果要把所有的爱加上一个期限,噢不,是给所有的代码块都标记上权限,不累死才怪。还好 swift 里面所有代码实体的默认权限,都是最常用的 internal。所以当你开发自己的 App 时,可能完全不用管权限控制的事情。
但当你需要写一个公开API的时候就必须对里面的代码块进行“隐身对其可见”的public标记要么其他人是用不到的。
但当你需要写一个公开 API 的时候,就必须对里面的代码块进行“隐身对其可见”的 public 标记,要么其他人是用不到的。
Private私有级别的权限最严格它可以用来隐藏某些功能的细节实现方式。合理构筑你的代码你就可以安全地使用extension和高级功能又不把它们暴露给项目内的其他文件。
Private私有级别的权限最严格它可以用来隐藏某些功能的细节实现方式。合理构筑你的代码你就可以安全地使用 extension 和高级功能,又不把它们暴露给项目内的其他文件。
除了可以给整个声明设权限Swift还允许大家在需要的时候把某个属性property的取值权限比赋值权限设得更加开放。
除了可以给整个声明设权限Swift 还允许大家在需要的时候把某个属性property的取值权限比赋值权限设得更加开放。
#####举个例子:
```swift
public class ListItem {
// ListItem这个类有两个公开的属性
// ListItem 这个类,有两个公开的属性
public var text: String
public var isComplete: Bool
// 下面的代码表示把变量UUID的赋值权限设为private对整个app可读但值只能在本文件里写入
// 下面的代码表示把变量 UUID 的赋值权限设为 private对整个 app 可读,但值只能在本文件里写入
private(set) var UUID: NSUUID
public init(text: String, completed: Bool, UUID: NSUUID) {
@ -54,7 +54,7 @@ Private私有级别的权限最严格它可以用来隐藏某些功能
self.UUID = UUID
}
// 这段没有特别标记权限因此属于默认的internal级别。在框架目标内可用但对于其他目标不可用
// 这段没有特别标记权限,因此属于默认的 internal 级别。在框架目标内可用,但对于其他目标不可用
func refreshIdentity() {
self.UUID = NSUUID()
}
@ -68,15 +68,15 @@ Private私有级别的权限最严格它可以用来隐藏某些功能
}
```
当我们使用Objective-CSwift混合开发时需要注意
当我们使用 Objective-CSwift 混合开发时,需要注意:
- 如果你在写的是一个应用Xcode会生成一个头文件来保证两者的可互访性而这个生成的头文件会包含publicinternal级别的声明。
- 如果你在写的是一个应用Xcode 会生成一个头文件来保证两者的可互访性,而这个生成的头文件会包含 publicinternal 级别的声明。
- 如果你的最终产品是一个Swift框架头文件里只会出现标记为public级别的声明。因为框架的头文件属于公开的Objective-C接口的一部分只有public部分对Objective-C可用。
- 如果你的最终产品是一个 Swift 框架,头文件里只会出现标记为 public 级别的声明。(因为框架的头文件,属于公开的 Objective-C 接口的一部分,只有 public 部分对 Objective-C 可用。)
虽然Swift不推荐大家传播和使用第三方的框架但对于建立和分享源文件形式的框架是支持的。对于需要写框架方便应用与多个项目的开发者来说要记得把API标记为public级别。
虽然 Swift 不推荐大家传播和使用第三方的框架,但对于建立和分享源文件形式的框架是支持的。对于需要写框架,方便应用与多个项目的开发者来说,要记得把 API 标记为 public 级别。
如果您想了解更多关于权限控制的内容可以查看苹果官方最新的《The Swift Language》和《Using Swift with Cocoa and Objective-C》指南
这两本指南在iBooks里面可以下载更新喔。
这两本指南在 iBooks 里面可以下载更新喔。
本文由翻译自Apple Swift Blog https://developer.apple.com/swift/blog/?id=5
本文由翻译自 Apple Swift Blog https://developer.apple.com/swift/blog/?id=5