Как сохранить массив пользовательских структур в 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)

Заранее спасибо за любые советы / советы

Ответы на вопрос(1)

Ваш ответ на вопрос