2017-02-19 15 views
-1

현재 개발중인 앱은 사용자 정의 주석을 작성하지만 사용자가 mapView를 사용하여 페이지를 전환하면 모두 언로드됩니다. 사용자 지정 배열에 저장하지만 UserDefaults가 해당 배열을 저장하지 않도록합니다. 배치 된 주석을 보존하는 쉬운 방법이 있습니까? 아니면 UserDefaults에서 배열을 저장하는 방법은 있습니까? 내 배열이 같다 :MapView에 주석 저장

var mapAnnotations = [pinLocations]() 
struct pinLocations { 
    let latitude: Double 
    let longnitude: Double 
    let name: Double 
    let time: String 
} 

답변

0

은 구조체를 확인하는 클래스 대신, NSObject의에서 파생 및 init?(coder:)encode(with:)를 구현하여 NSCoding을 채택한다. 이제이 클래스의 배열을 NSData에 보관하고 NSKeyedArchiver.archivedData(withRootObject:) (그리고 역순으로 NSKeyedUnarchiver.unarchiveObject(with:))을 호출하여 UserDefaults에 저장할 수 있습니다.

+0

이는 보관 가능한 사용자 정의 클래스의 예입니다 https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch23p798basicFileOperations/ch36p1053basicFileOperations/Person.swift – matt