0
我試圖保存對象,以核心數據是從parse牽強,但我想只有那些不包含名稱,即已經在數據庫中的核心數據:保存對象與NSPredicate
func fetchFromParse() {
let entity = NSEntityDescription.entityForName("Medicine", inManagedObjectContext: context)
let query = PFQuery(className: "Medicine")
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if error == nil {
for object in objects! {
let medicine = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: self.context)
if let name = object["medicineName"] as? String,
amount = object["amountQuantity"] as? String {
let predicate = NSPredicate(format: "name != %@", name)
self.fetchRequest.predicate = predicate
do{
let fetchedEntities = try self.context.executeFetchRequest(self.fetchRequest) as! [Medicine]
//save to Core Data
medicine.setValue(name, forKey: "name")
medicine.setValue(amount, forKey: "amount")
} catch let error as NSError{
print(error)
}
do {
try self.context.save()
self.tableView.reloadData()
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}
}
}
}
}
}
從核心數據
func fetchFromCoreData() {
do {
let results = try context.executeFetchRequest(fetchRequest)
medicines = results as! [Medicine]
} catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}
}
獲取數據我把在viewWillAppear中:
if Reachability.isConnectedToNetwork() {
//fetching data from Parse
fetchFromParse()
fetchFromCoreData()
tableView.reloadData()
} else {
//fetching data from Core data
fetchFromCoreData()
logOutButton.enabled = false
}
但它不工作。任何建議如何修復它?
它沒有工作。它一次又一次地保存同名的實體 – kiuzio2
在謂詞中的錯字,我們想檢查沒有匹配,沒有差異。更正了在答案 – Wain
它的工作原理!你能告訴我爲什麼在同一時間我無法獲取數據並在tableView中看到它們嗎?只有在第二次啓動應用程序後? – kiuzio2