Я пытаюсь получить оценки (NSDates) из основных данных и вернуть дату. Возвращает 00:00:00.00, если coreData пуст, и отображает первую дату, если это не так.
У меня есть следующий код:
func getHighScore() -> NSDate {
let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
let context = appDel.managedObjectContext
var entity = NSFetchRequest(entityName: "Score")
entity.returnsObjectsAsFaults = false
var score = NSFetchRequest(entityName: "Score")
score.returnsObjectsAsFaults = false
let results: [AnyObject]
results = context!.executeFetchRequest(score, error: nil)!
println("\(results.count) scores available")
dateFormatter.dateFormat = "HH:mm:ss.SS"
var highScore : NSDate = dateFormatter.dateFromString("00:00:00.00")!
if (results.count>0){
var time: AnyObject? = results[0].valueForKey("time")
println(time)
var highScore = time as NSDate
return highScore
}
else {
return dateFormatter.dateFromString("00:00:00.00")!
}
}
Когда я пробую строку:
var highScore = time as NSDate
Я получаю сообщение об ошибке «AnyObject? не конвертируется в NSDate ', когда я принудительно понижаю, и он меняется на:
var highScore = time as! NSDate
Я получаю сообщение об ошибке «фатальная ошибка: неожиданно найдено nil при развертывании необязательного значения».
Любая помощь будет оценена по достоинству :)
results
как[AnyObject]
, если вы знаете, что это, скорее всего,[NSManagedObject]
? Swift призывает разработчика быть как можно более конкретным. - person vadian   schedule 08.12.2015