Skip to content

Commit 1e58639

Browse files
committed
Updated the discussion of the @objc attribute in the Declaration Attributes section to note that enumerations and enumeration cases can use this attribute.
1 parent ba7ce72 commit 1e58639

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

source/chapter3/06_Attributes.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ protocol MyProtocol {
100100
protocol MyRenamedProtocol {
101101
// 这里是协议定义
102102
}
103-
103+
104104
@available(*, unavailable, renamed="MyRenamedProtocol")
105105
typealias MyProtocol = MyRenamedProtocol
106106
```
@@ -109,7 +109,7 @@ typealias MyProtocol = MyRenamedProtocol
109109

110110
如果 `available` 特性除了平台名称参数外,只指定了一个 `introduced` 参数,那么可以使用以下简写语法代替:
111111

112-
> @available(`平台名称` `版本号`, *)
112+
> @available(`平台名称` `版本号`, * )
113113
114114
`available` 特性的简写语法可以简明地表达出声明在多个平台上的可用性。尽管这两种形式在功能上是相同的,但请尽可能地使用简写语法形式。
115115

@@ -122,13 +122,13 @@ class MyClass {
122122

123123
`objc`
124124

125-
该特性用于修饰任何可以在 Objective-C 中表示的声明。比如,非嵌套类、协议、非泛型枚举(仅限原始值为整型的枚举)、类和协议中的属性和方法(包括存取方法)、构造器、析构器以及下标`objc` 特性告诉编译器这个声明可以在 Objective-C 代码中使用。
125+
该特性用于修饰任何可以在 Objective-C 中表示的声明。比如,非嵌套类、协议、非泛型枚举(仅限原始值为整型的枚举)、类和协议中的属性和方法(包括存取方法)、构造器、析构器以及下标运算符`objc` 特性告诉编译器这个声明可以在 Objective-C 代码中使用。
126126

127127
标有 `objc` 特性的类必须继承自 Objective-C 中定义的类。如果你将 `objc` 特性应用于一个类或协议,它也会隐式地应用于类或协议中兼容 Objective-C 的成员。对于标记了 `objc` 特性的类,编译器会隐式地为它的子类添加 `objc` 特性。标记了 `objc` 特性的协议不能继承没有标记 `objc` 的协议。
128128

129129
如果你将 `objc` 特性应用于枚举,每一个枚举用例都会以枚举名称和用例名称组合的方式暴露在 Objective-C 代码中。例如,在 `Planet` 枚举中有一个名为 `Venus` 的用例,该用例暴露在 Objective-C 代码中时叫做 `PlanetVenus`
130130

131-
`objc` 特性有一个可选的参数,由标识符构成。当你想把 `objc` 所修饰的实体以一个不同的名字暴露给 Objective-C 时,你就可以使用这个特性参数。你可以使用这个参数来命名类、协议、方法、存取方法以及构造器。下面的例子把 `ExampleClass` 中的 `enabled` 属性的取值方法暴露给 Objective-C,名字是 `isEnabled`,而不是它原来的属性名。
131+
`objc` 特性有一个可选的参数,由标识符构成。当你想把 `objc` 所修饰的实体以一个不同的名字暴露给 Objective-C 时,你就可以使用这个特性参数。你可以使用这个参数来命名类、枚举类型、枚举用例、协议、方法、存取方法以及构造器。下面的例子把 `ExampleClass` 中的 `enabled` 属性的取值方法暴露给 Objective-C,名字是 `isEnabled`,而不是它原来的属性名。
132132

133133
```swift
134134
@objc

0 commit comments

Comments
 (0)