Как сохранить массив пользовательских структур в plist swift
Я пытаюсь сохранить данные оповещения в plist, они представлены в виде массива класса alertData, вся информация, которую я могу найти, указывает на ее кодирование, а затем помещает их в массив, но я запутался как для чего это нужно? И я также не могу понять, как это сделать, вот моя игровая площадка: любая помощь будет отличной
Класс (я пытаюсь сохранить массив из них)
public class alertData: NSObject, NSCoding {
//Properties of the timer data - make optionals optional i.e. alert count etc.
var alertCounter: NSTimeInterval?
var alertText: String?
var alertColor: UIColor?
var alertColorIndex: Int?
//initialisation
init(alertCounter: Double, alertText: String, alertColor: UIColor, alertColourIndex: Int) {
self.alertCounter = alertCounter
self.alertText = alertText
self.alertColor = alertColor
self.alertColorIndex = alertColourIndex
}
public required init(coder aDecoder: NSCoder) {
alertCounter = aDecoder.decodeDoubleForKey("Item1")
alertText = aDecoder.decodeObjectForKey("Item2") as? String
alertColor = aDecoder.decodeObjectForKey("Item3") as? UIColor
alertColorIndex = aDecoder.decodeIntegerForKey("Item4")
}
public func encodeWithCoder(aCoder: NSCoder) {
alertCounter = aCoder.decodeDoubleForKey("Item1")
alertText = aCoder.decodeObjectForKey("Item2") as? String
alertColor = aCoder.decodeObjectForKey("Item3") as? UIColor
alertColorIndex = aCoder.decodeIntegerForKey("Item4")
}
}
Массив (заполняется, когда я добавляю данные оповещения в приложение):
var alertDataSource: [alertData] = []
И закодировать это:
let archive = NSKeyedArchiver.archivedDataWithRootObject(self.alertDataSource)
print(archive)
И извлечь это:
let result = NSKeyedUnarchiver.unarchiveObjectWithData(archive)
print(result)
Заранее спасибо за любые советы / советы