Мой код swift
выглядит следующим образом:
Family.arrayTuple:[(String,String)]? = []
Family.arrayTupleStorage:String?
Family.arrayTupleStorage:String = (newDir! as NSString).stringByAppendingPathComponent("arrayTuple.archive")
NSKeyedArchiver.archiveRootObject(Family.arrayTuple! as! AnyObject, toFile: Family.arrayTupleStorage!)
У меня сообщение об ошибке в окне консоли при сборке кода.
«Не удалось преобразовать значение типа Swift.Array‹(Swift.String, Swift.String)>» (0xcce8098) в Swift.AnyObject (0xcc8f00c).
Как я могу заархивировать Family.arrayTuple
и разархивировать Family.arrayTupleStorage
?
AnyObject
: кортежи являются типами значений иAnyObject
может (только) представлять экземпляр любого типа класса. Следующее приведет к той же ошибке:var foo = (1, 2)
,var bar = foo as! AnyObject
. Однако вы можете привести целое число (var foo = 1
выше) кAnyObject
: это немного вводит в заблуждение, посколькуAnyObject
внутренне хранит int как экземпляр класса (__NSCFNumber
). - person dfrib   schedule 04.02.2016