Mar*_*rcy 6 special-characters swift swiftui
在Apple的SwiftUI教程“组成复杂的接口”中,教程使用了反斜杠,该反斜杠似乎不是字符串插值或转义符。这是一行:
ForEach(categories.keys.sorted().identified(by: \.self))
Run Code Online (Sandbox Code Playgroud)
反斜杠的目的是什么?
下面是包含它的整个Struct。
struct CategoryHome: View {
var categories: [String: [Landmark]] {
.init(
grouping: landmarkData,
by: { $0.category.rawValue }
)
}
var body: some View {
NavigationView {
List {
ForEach(categories.keys.sorted().identified(by: \.self)) { key in
Text(key)
}
}
.navigationBarTitle(Text("Featured"))
}
}
}
Run Code Online (Sandbox Code Playgroud)
在中SwiftUI,blackslash运算符用于引用键路径以在给定的块内使用。
来自苹果:
添加引用身份密钥路径的功能,该身份密钥路径引用了应用于该身份密钥路径的整个输入值。
因此,例如,请参见以下代码:
ForEach(["iPhone SE", "iPhone XS Max"].identified(by: \.self)) { deviceName in
LandmarkList()
.previewDevice(PreviewDevice(rawValue: deviceName))
}
Run Code Online (Sandbox Code Playgroud)
在这里遍历数组时,使用self(here-string)作为键
现在再举一个例子:我们使用对象数组(不是字符串),现在在这种情况下,用作迭代块内部键的键是id。
List(landmarkData.identified(by: \.id)) { landmark in
LandmarkRow(landmark: landmark)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
771 次 |
| 最近记录: |