Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift从ManagedObjectContext FetchRequest获取日期数组_Ios_Arrays_Swift_Core Data_Nspredicate - Fatal编程技术网

Ios Swift从ManagedObjectContext FetchRequest获取日期数组

Ios Swift从ManagedObjectContext FetchRequest获取日期数组,ios,arrays,swift,core-data,nspredicate,Ios,Arrays,Swift,Core Data,Nspredicate,我试图为核心数据中的日期属性创建一个NSDates数组(一个保存日期数组)。因此,我可以在日历上显示保存项目的天数。我已尝试使用以下代码,但出现错误: 由于未捕获异常“NSInvalidArgumentException”而终止应用程序,原因:“无法分析格式字符串“savedTime” 例如,一种解决方案是告诉核心数据返回字典数组,而不是[NSManagedObject] func datesWithSavedData() -> [NSDate] { let fetchReques

我试图为核心数据中的日期属性创建一个NSDates数组(一个保存日期数组)。因此,我可以在日历上显示保存项目的天数。我已尝试使用以下代码,但出现错误:

由于未捕获异常“NSInvalidArgumentException”而终止应用程序,原因:“无法分析格式字符串“savedTime”


例如,一种解决方案是告诉核心数据返回字典数组,而不是
[NSManagedObject]

func datesWithSavedData() -> [NSDate] {
    let fetchRequest = NSFetchRequest(entityName: "UserData")
    fetchRequest.sortDescriptors = [NSSortDescriptor(key: "savedTime", ascending: false)]
    fetchRequest.resultType = .DictionaryResultType
    fetchRequest.propertiesToFetch = ["savedTime"]
    do {
       let results = try managedObjectContext.executeFetchRequest(fetchRequest) as! [[String:NSDate]]
       return results.map { $0["savedTime"] as! NSDate }

    } catch let error as NSError {
       print(error)
       return [NSDate]()
    }
}
Swift 3+

func datesWithSavedData() -> [Date] {
    let fetchRequest : NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName: "UserData")
    fetchRequest.sortDescriptors = [NSSortDescriptor(key: "savedTime", ascending: false)]
    fetchRequest.resultType = .dictionaryResultType
    fetchRequest.propertiesToFetch = ["savedTime"]
    do {
       let results = try managedObjectContext.fetch(fetchRequest) as! [[String:Date]]
       return results.map { $0["savedTime"] as! Date }

    } catch {
       print(error)
       return [Date]()
    }
}
func datesWithSavedData()->[Date]{
let fetchRequest:NSFetchRequest=NSFetchRequest(entityName:“UserData”)
fetchRequest.sortDescriptors=[NSSortDescriptor(键:“savedTime”,升序:false)]
fetchRequest.resultType=.dictionaryResultType
fetchRequest.propertiesToFetch=[“savedTime”]
做{
让results=try managedObjectContext.fetch(fetchRequest)作为![[String:Date]]
返回results.map{$0[“savedTime”]as!Date}
}抓住{
打印(错误)
返回[日期]()
}
}

例如,解决方案是告诉核心数据返回字典数组,而不是
[NSManagedObject]

func datesWithSavedData() -> [NSDate] {
    let fetchRequest = NSFetchRequest(entityName: "UserData")
    fetchRequest.sortDescriptors = [NSSortDescriptor(key: "savedTime", ascending: false)]
    fetchRequest.resultType = .DictionaryResultType
    fetchRequest.propertiesToFetch = ["savedTime"]
    do {
       let results = try managedObjectContext.executeFetchRequest(fetchRequest) as! [[String:NSDate]]
       return results.map { $0["savedTime"] as! NSDate }

    } catch let error as NSError {
       print(error)
       return [NSDate]()
    }
}
Swift 3+

func datesWithSavedData() -> [Date] {
    let fetchRequest : NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName: "UserData")
    fetchRequest.sortDescriptors = [NSSortDescriptor(key: "savedTime", ascending: false)]
    fetchRequest.resultType = .dictionaryResultType
    fetchRequest.propertiesToFetch = ["savedTime"]
    do {
       let results = try managedObjectContext.fetch(fetchRequest) as! [[String:Date]]
       return results.map { $0["savedTime"] as! Date }

    } catch {
       print(error)
       return [Date]()
    }
}
func datesWithSavedData()->[Date]{
let fetchRequest:NSFetchRequest=NSFetchRequest(entityName:“UserData”)
fetchRequest.sortDescriptors=[NSSortDescriptor(键:“savedTime”,升序:false)]
fetchRequest.resultType=.dictionaryResultType
fetchRequest.propertiesToFetch=[“savedTime”]
做{
让results=try managedObjectContext.fetch(fetchRequest)作为![[String:Date]]
返回results.map{$0[“savedTime”]as!Date}
}抓住{
打印(错误)
返回[日期]()
}
}

NSPredicate(格式:“savedTime”)
毫无意义。谓词用于过滤结果集,那么您希望实现什么呢?如果您想要所有条目,请省略谓词。我已经尝试过了,并且在selectedDates=results行上出现了错误“致命错误:在展开可选值时意外发现了nil!”!日期,我将它们保存为nsdate。
executeFetchRequest
默认情况下始终返回
[NSManagedObject]
。但是,您可以通过将请求的
resultType
设置为
。DictionaryResultType
并将
propertiesToFetch
设置为所需属性的数组来获取简单字典的数组。然后,您可以使用
map
函数或KVC获取您的
NSDate
数组。这可能会有帮助:(现在为Swift 2更新)
NSPredicate(格式:“savedTime”)
毫无意义。谓词用于过滤结果集,那么您希望实现什么呢?如果您想要所有条目,请省略谓词。我已经尝试过了,并且在selectedDates=results行上出现了错误“致命错误:在展开可选值时意外发现了nil!”!日期,我将它们保存为nsdate。
executeFetchRequest
默认情况下始终返回
[NSManagedObject]
。但是,您可以通过将请求的
resultType
设置为
。DictionaryResultType
并将
propertiesToFetch
设置为所需属性的数组来获取简单字典的数组。然后,您可以使用
map
函数或KVC获取您的
NSDate
数组。这可能会有帮助:(现在已更新为Swift 2)这很有效,并提供了一个完美的nsdates字典!另一种解决方案是从核心数据中输出整个实体,而不仅仅是日期。这很有效,并且提供了一个完美的nsdates字典!另一种解决方案从核心数据中输出整个实体,而不仅仅是日期。