2015-06-09 3 views
1

У меня есть двумерный массив NSDates, работающий с точностью до секунды.Swift: NSDate теряет второстепенную точность после загрузки

Но когда я сохранить массив как это:

let pathes = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) as NSArray 
let documentsDirectory = pathes.objectAtIndex(0) as! NSString 
let path = documentsDirectory.stringByAppendingPathComponent("tj_001.plist") 
var dicti = NSMutableDictionary() 

dicti.setObject(tDate, forKey: "tTimes") 

dicti.writeToFile(path, atomically: false) 

и загрузить его люблю:

let dicti:AnyObject = NSDictionary(contentsOfFile: path)! 

     . . . 

       tDate = dicti.objectForKey("tTimes") as! [[(NSDate)]] 

тогда каждый NSDate потерял свой суб-секундную точность. Где это ?

ответ

0

Кто-то сообщил об этой ошибке в 2009 году http://openradar.appspot.com/6768646

Это звучит как фундаментальный недостаток в Plist сериализации (который вы неявно с помощью через NSDictionary.writeToFile).

Вам придется сериализовать их самостоятельно. Сохранение дробной части даты в виде отдельного NSNumber в вашем словаре кажется достаточно простым.

+0

О, хорошо;) Спасибо! –