2016-06-11 28 views
0

我試圖存儲一個NSDate在CoreData,然後檢索,並把它應用到一個變量檢索的NSDate並將其設置爲一個NSDate變量斯威夫特

@IBOutlet weak var buttonTimer1: UIButton! { 
     setTimersDate.zero = NSDate() 
     let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
     let context:NSManagedObjectContext = appDel.managedObjectContext 

     var buttonTimer1Date = NSEntityDescription.insertNewObjectForEntityForName("TimerDates", inManagedObjectContext: context) as NSManagedObject 
     buttonTimer1Date.setValue(setTimersDate.zero, forKey: "dates") 

     do { 
      try context.save() 
     } catch { 
      print("Dates saving error") 
     } 
} 

@IBOutlet weak var setTimer1: UIButton! { 
     let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate //Import Appdelegate 
     let context:NSManagedObjectContext = appDel.managedObjectContext 

     var request = NSFetchRequest(entityName: "TimerDates") 
     request.returnsObjectsAsFaults = false 

     do { 
      print(request[0].buttonTimer1Date) 
     } catch { 
      print("Cannot request data") 
     } 
} 

這種保存和打印當前日期在控制檯上,所以我知道日期正在存儲。但是,我想將request[0]設置回NSDate()。

這是可能的嗎?或者我會以這種錯誤的方式去做?

乾杯。

回答

0

您需要執行的讀取請求

let appDel = UIApplication.sharedApplication().delegate as! AppDelegate //Import Appdelegate 
    let context = appDel.managedObjectContext 
    let request = NSFetchRequest(entityName: "TimerDates") 

    do { 
     let allDates = try context.executeFetchRequest(request) as! [NSManagedObject] 
     if !allDates.isEmpty { print(allDates[0].valueForKey("dates") } 
    } catch let error as NSError { 
     print("Cannot request data", error) 
    } 

但是這個代碼作爲IBOutlet的關閉是有點怪。

+0

非常感謝 - 我會嘗試解決方案!它實際上是從'viewDidLoad()'調用的,我認爲把它放在IBOutlet下顯示了我想要更清楚地實現的內容。作爲一個相對的newby,我可能是錯的。我將在未來完全發佈我的代碼。 – prikkles