Фон
Я пытаюсь закодировать перечисление в стиле String, используя протокол NSCoding, но я запускаю ошибки, конвертирующие в String и обратно.
При декодировании и кодировании я получаю следующие ошибки:
Строка не конвертируется в Stage
Дополнительный аргумент ForKey: при вызове
код
enum Stage : String
{
case DisplayAll = "Display All"
case HideQuarter = "Hide Quarter"
case HideHalf = "Hide Half"
case HideTwoThirds = "Hide Two Thirds"
case HideAll = "Hide All"
}
class AppState : NSCoding, NSObject
{
var idx = 0
var stage = Stage.DisplayAll
override init() {}
required init(coder aDecoder: NSCoder) {
self.idx = aDecoder.decodeIntegerForKey( "idx" )
self.stage = aDecoder.decodeObjectForKey( "stage" ) as String // ERROR
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeInteger( self.idx, forKey:"idx" )
aCoder.encodeObject( self.stage as String, forKey:"stage" ) // ERROR
}
// ...
}