fuz*_*uzz 2 xcode swift swiftui
鉴于以下情况struct:
struct Landmark {
let id: String
let name: String
let location: CLLocationCoordinate2D
}
Run Code Online (Sandbox Code Playgroud)
以及以下内容@State:
@State var landmarks: [Landmark] = [
Landmark(id: "1", name: "Sydney Harbour Bridge", location: .init(latitude: -33.852222, longitude: 151.210556)),
Landmark(id: "2", name: "Brooklyn Bridge", location: .init(latitude: 40.706, longitude: -73.997))
]
private func selectNextLandmark() {
if let selectedLandmark = selectedLandmark, let currentIndex = landmarks.firstIndex(where: { $0 == selectedLandmark }), currentIndex + 1 < landmarks.endIndex {
self.selectedLandmark = landmarks[currentIndex + 1]
} else {
selectedLandmark = landmarks.first
}
}
Run Code Online (Sandbox Code Playgroud)
if我在里面的线路上收到以下错误selectNextLandmark:
运算符函数“==”要求“Landmark”符合“Equatable”
是我的有问题Landmark struct还是语句语法有问题if?
消息很明确
运算符函数“==”要求“Landmark”符合“Equatable”
该结构Landmark必须符合Equatable协议,以便它知道该结构的相等性意味着什么。将您的结构更新为
struct Landmark: Equatable {
let id: String
let name: String
let location: CLLocationCoordinate2D
static func == (lhs: Landmark, rhs: Landmark) -> Bool {
//Your equating logic here
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2350 次 |
| 最近记录: |