获取请求和NSpredicate上的错误处理

时间:2016-02-17 15:12:46

标签: swift core-data error-handling nspredicate nsfetchrequest

我使用CoreData从过去一周中提取数据。当存储一些数据时,这一切都可以正常工作。但是,当没有存储数据时,程序崩溃。我该如何处理这个错误?

    for i in 0...6 { // Get every day in the past week
        let appDel = (UIApplication.sharedApplication().delegate as! AppDelegate)
        let context: NSManagedObjectContext = appDel.managedObjectContext
        let request = NSFetchRequest(entityName: "Pulser")
        request.returnsObjectsAsFaults = false

        let calendar = NSCalendar.currentCalendar()
        let now = NSDate()
        let beginningOfToday = calendar.startOfDayForDate(now)
        let previousDay = calendar.startOfDayForDate(calendar.dateByAddingUnit(.Day, value: -i, toDate: beginningOfToday, options: [])!)
        let previousPreiviousDay = calendar.startOfDayForDate(calendar.dateByAddingUnit(.Day, value: -i - 1 , toDate: beginningOfToday, options: [])!)

         request.predicate = NSPredicate(format:"(date >= %@) AND (date < %@)", previousPreiviousDay, previousDay)

        do {
            let results = try context.executeFetchRequest(request)  as! [Pulser]
            pulseArray.append(meanValue(results)) // if more than one value stored for each day, take the mean value of it

        }
        catch let error as NSError {
            print(error)
        }
    }

1 个答案:

答案 0 :(得分:0)

现在它就像一个魅力,谢谢。

 if results.count > 0 {
            pulseArray.append(meanValue(results)) 

  }