2017-02-19 209 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。現在可以通過調用NSKeyedArchiver.archivedData(withRootObject:)(反過來調用NSKeyedUnarchiver.unarchiveObject(with:))將此類的數組歸檔到NSData中並保存到UserDefaults中。

+0

這是一個可存檔的自定義類的示例:https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch23p798basicFileOperations/ch36​​p1053basicFileOperations/Person.swift – matt