2017-02-19 21 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, и принять NSCoding путем внедрения init?(coder:) и encode(with:). Массив этого класса теперь может быть заархивирован в NSData и сохранен в UserDefaults, вызвав NSKeyedArchiver.archivedData(withRootObject:) (и наоборот, вызывая NSKeyedUnarchiver.unarchiveObject(with:)).

+0

Это пример архивируемого пользовательского класса: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch23p798basicFileOperations/ch36p1053basicFileOperations/Person.swift – matt