티스토리 뷰

 

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)
    }
}

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함