Здесь я хочу архивировать и разблокировать свой собственный класс, вот фрагмент кода.Как кодировать и декодировать этот класс
enum Type: Int {
case Fruit
case Meat
case Drink
}
class ShoppingList {
var typeOne: [Type]!
var typeTwo: [Type]!
var typeThree: [Type]!
init(coder aDecoder: NSCoder) {
// how to decode enum-based array
}
func encodeWithCoder(aCoder: NSCoder) {
// how to encode enum-based array
}
}
Мне интересно, как реализовать эти два метода.
Вы можете преобразовать это в 'NSDictionary' и сохранить в файле json/plist. Или используйте 'NSArchiver', если вы ищете что-то более компактное (т.е. байты вместо xml/json). –
Идея состоит в том, чтобы кодировать/декодировать переменные экземпляра, чтобы вы могли восстановить их из кодера. Сделайте это, как вам нравится. Размышление о способе представления массива типов (ужасный выбор имени, кстати) в качестве архивируемого объекта полностью зависит от вас. Просто помните, что то, что происходит, должно выйти; вам нужно представление, которое точно обратимо. – matt
Спасибо, matt.I выдумали решение, основанное на вашем предложении. – tounaobun