Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refine zh-CN translation #3

Merged
merged 2 commits into from
Aug 29, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 30 additions & 24 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,63 +8,69 @@

[English](README.md)

DefaultsKit 是利用Swift4强大的Codable,在UserDefaults基础上提供一层简单且强大的封装。它仅使用少于70行代码来实现这些功能。
如何安装 >> [`指南`](https://github.com/nmdias/DefaultsKit/blob/master/INSTALL.md) <<

使用说明
第一步:
实例化或者使用单例来初始化
DefaultsKit 是一个利用 Swift4 强大的 Codable,在 UserDefaults 基础上提供一层简单且强大的封装。它仅使用少于 70 行代码来实现这些功能。

## 使用说明

第一步: 实例化或者从 `Defaults` 获取一个 `shared` 实例

```swift
let defaults = Defaults() // 或者使用 let defaults = Defaults.shared
```

第二步:

```swift
// 定义一个键(key)
// 定义一个键 (key)
let key = Key<String>("someKey")

// 设置值(value)
// 设置值 (value)
defaults.set("Codable FTW 😃", for: key)

// 通过设置的key来查看返回的value结果值
// 通过设置的 key 来查看返回的 value 结果值
defaults.get(for: key) // 输出: Codable FTW 😃
```

判断某个键(key)是否含有某个值(value)
## 判断某个键是否含有某个值

```swift
if defaults.has(key) {
// 书写你自己的代码
}
```

> 如果你只需要知道该键值队(key,value)是否存在,而不需要使用该key使用的返回值(value),使用has()这个方法代替这个可选的get(for:key)方法。对于一些复杂的对象,它可以减少避免一些不必要的转换
> 如果你只需要知道该键值对 (key,value) 是否存在,而不需要使用该 key 使用的返回值 (value),你可以使用 `has()`这个方法代替可选的 `get(for:key)` 方法。对于一些复杂的对象,它可以减少避免一些不必要的反序列化。


复杂的对象存储
一个遵循Codable协议的复杂对象需要存储
### 复杂的对象存储

存储一个遵循 [Codable](https://developer.apple.com/documentation/swift/codable) 协议的复杂对象:

```swift
struct Person: Codable {
let name: String
let age: Int
}

// 然后创建一个键(key)
// 然后创建一个键
let key = Key<Person>("personKey")

// 获取一个实例符合Codable协议的枚举,结构体或者类
// 获取一个遵循 Codable 协议的枚举,结构体或者类的实例
let person = Person(name: "Bonnie Greenwell", age: 80)

// 赋值
defaults.set(person, for: key)

// 最后查看key返回值的value
// 最后查看 key 返回值的 value
let person = defaults.get(for: key)
person?.name // Bonnie Greenwell
person?.age // 80
```
嵌套对象的存储
只要是遵循Codable协议,你也可以使用嵌套对象
### 嵌套对象的存储

只要是遵循 Codable 协议的对象,你都可以嵌套地使用它们。

```swift
enum Pet: String, Codable {
Expand All @@ -77,25 +83,25 @@ struct Person: Codable {
let pets: [Pet]
}

// 获取一个遵循Codable协议的实例
// 获取一个遵循 Codable 协议的实例
let person = Person(name: "Claire", pets: [.cat])

// 赋值
defaults.set(person, for: key)

// 查看key返回值的value
// 查看 key 返回值的 value
let person = defaults.get(for: key)
person?.name // Claire
person?.pets.first // cat
```

## 开源协议

## License
DefaultsKit 使用 MIT 协议,更多内容可以查看 [LICENSE](https://github.com/nmdias/DefaultsKit/blob/master/LICENSE)。

DefaultsKit is released under the MIT license. See [LICENSE](https://github.com/nmdias/DefaultsKit/blob/master/LICENSE) for details.

### Help Wanted
### 寻求帮助
#### [Review/Translate this file to Chinese](https://github.com/nmdias/DefaultsKit/issues/1)
Chinese is the #1 spoken language in the world and I'd love to have DefaultsKit be more inclusive, unfortunately I don't speak Chinese. If you know chinese, and would like to help out, please see [issue #1](https://github.com/nmdias/DefaultsKit/issues/1).

Thank you 🙏
汉语是世界上使用人数最多的语言,我希望 DefaultsKit 能被更多的人使用,但是我不会说汉语。如果你会汉语,而且愿意帮忙,请看看 [issue #1](https://github.com/nmdias/DefaultsKit/issues/1)。

谢谢 🙏