티스토리 뷰
에러 해결 일지/프로젝트 에러 해결
SwiftUI MapKit Initializer ~ requires that 'CoinSinging' conform to 'Identifiable'
JeroIOS 2022. 11. 2. 22:45
MapKit을 활용하여 Map 구조체를 불러올 때 2번째로 뜨는
coordinateRegion, annotationItems를 활용하여 구현하던 중에 에러가 발생했다.
Initializer 'init(coordinateRegion:interactionModes:showsUserLocation:userTrackingMode:annotationItems:annotationContent:)' requires that 'CoinSinging' conform to 'Identifiable'
CoinSinging은 json 형식의 데이터를 디코딩하고자 만든 모델인데
위 에러를 보면 'CoinSinging'모델이 identifiable을 따르지 않았다는 메세지이다.
struct CoinSinging: Codable, Hashable {
var name: String
var url: String
var latitude: Double
var longitude: Double
var coordinate: CLLocationCoordinate2D {
CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
}
}
맨 끝에 보면 Items.Element 타입이 Identifiable인 것을 확인할 수 있었고,
이를 해결해주기 위해 모델에 식별자 프로토콜을 채택하였더니,
Identifiable을 아래 코드와 같이 수정해주었더니 해결이 되었다.
struct CoinSinging: Codable, Identifiable, Hashable {
let id = UUID()
var name: String
var url: String
var latitude: Double
var longitude: Double
var coordinate: CLLocationCoordinate2D {
CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
}
}
'에러 해결 일지 > 프로젝트 에러 해결' 카테고리의 다른 글
댓글