У меня есть следующий код, чтобы вернуть несколько дат, как NSDateSwift/как получить основные записи данных с помощью valueForKey
func setUpDays() {
var datesArray = [String]()
datesArray.append("28.03.2016")
datesArray.append("26.03.2016")
datesArray.append("27.03.2016")
for i in 0...datesArray.count-1 {
let dates2Convert = datesArray[i]
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy"
let day = dateFormatter.dateFromString(dates2Convert)
print(day)
}
}
Это работает отлично. Теперь я хочу, чтобы получить эти даты из основных данных вместо datesArray
var dates = [NSManagedObject]()
func setUpDays() {
for i in 0...2 {
let currentDates = dates[i]
let date2Convert = currentDates.valueForKey("date") as? String
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy"
let day = dateFormatter.dateFromString(date2Convert)
print(day)
}
}
Но let currentDates = dates[i]
коды метательных следующего исключения:
Дата: правильно сохраняется в основных данных. Если я напечатаю их, они верны. Что мне не хватает? Помощь очень ценится.
В соответствии с запросом: так как основные данные заполняются строкой даты.
func parser(parser: NSXMLParser, foundCharacters string: String) {
let str = string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
if parsedElement == "eventDates" && str != "" {
if currentEvent.eventDates.isEmpty {
currentEvent.eventDates = str
parsedElement = ""
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let entity = NSEntityDescription.entityForName("Calendar", inManagedObjectContext:managedContext)
let datum = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedContext)
datum.setValue(currentEvent.eventDates, forKey: "date")
do {
try managedContext.save()
//5
dates.append(datum)
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}
}
}
}
Ну ... «даты» кажутся нулевыми или пустыми. Я думаю :-) Можете ли вы показать, где/как вы объявляете массив 'date'? – pbodsk
что такое 'currentDates'? звук как массив, потому что вы назвали его во множественном числе. Если он предназначен для одного экземпляра, он должен быть 'currentDate'. Когда вы проверяете' date [] 'это массив String или массив объектов CoreData? – Russell
'date = [NSManagedObject]()' –