From f82f40fd47fb3554e5cc24e4a26a7acb87e9a0bd Mon Sep 17 00:00:00 2001 From: Nemocdz Date: Sat, 8 Feb 2020 13:03:33 +0800 Subject: [PATCH] update Properties --- source/02_language_guide/10_Properties.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/source/02_language_guide/10_Properties.md b/source/02_language_guide/10_Properties.md index 2a749c7a..af1af508 100755 --- a/source/02_language_guide/10_Properties.md +++ b/source/02_language_guide/10_Properties.md @@ -289,7 +289,8 @@ stepCounter.totalSteps = 896 ```swift @propertyWrapper struct TwelveOrLess { - private var number = 0 + private var number: Int + init() { self.number = 0 } var wrappedValue: Int { get { return number } set { number = min(newValue, 12) } @@ -456,8 +457,12 @@ print(mixedRectangle.height) ```swift @propertyWrapper struct SmallNumber { - private var number = 0 - var projectedValue = false + private var number: Int + var projectedValue: Bool + init() { + self.number = 0 + self.projectedValue = false + } var wrappedValue: Int { get { return number } set { @@ -485,7 +490,7 @@ print(someStructure.$someNumber) // 打印 "true" ``` -写下 `s.$someNumber` 即可访问包装器的被呈现值。在存储一个比较小的数值时,如 4 ,`s.$someNumber` 的值为 `false`。但是,在尝试存储一个较大的数值时,如 55 ,被呈现值变为 `true`。 +写下 `someStructure.$someNumber` 即可访问包装器的被呈现值。在存储一个比较小的数值时,如 4 ,`someStructure.$someNumber` 的值为 `false`。但是,在尝试存储一个较大的数值时,如 55 ,被呈现值变为 `true`。 属性包装器可以返回任何类型的值作为它的被呈现值。在这个例子里,属性包装器要暴露的信息是:那个数值是否被调整过,所以它暴露出布尔型值来作为它的被呈现值。需要暴露出更多信息的包装器可以返回其他数据类型的实例,或者可以返回自身来暴露出包装器的实例,并把其作为它的被呈现值。