2017-02-19 10 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/ch36​​p1053basicFileOperations/Person.swift – matt

関連する問題