0
我有一個由id和detailText組成的核心數據實體。這個想法是,我的文本字段存儲它的內容旁邊的某個id是我的情況下的時間戳。現在,當用戶首次存儲detailText時,它應該像它應該那樣工作,但是如果用戶爲特定的id編輯detailText,我想刪除舊的detailText並放入新的detailText。 基本上我需要在Swift/Core數據中編寫下面的查詢幫助。編輯特定ID的核心數據密鑰的值
UPDATE myEntity SET detailText = theNewDetailText WHERE ID = myID;
這是我目前的保存和替換功能,我使用謂詞來找到我的選擇ID,但是我無法更新相應detailText字段中的某些ID。
func saveTextFromTextFieldToCoreData(textToSave: String){
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let entityDescription = NSEntityDescription.entityForName("GoalDetail", inManagedObjectContext:managedContext)
let thingToSaveToCD = NSManagedObject(entity: entityDescription!, insertIntoManagedObjectContext: managedContext)
print("received text to store and it's \(textToSave)")
if entityIsEmpty("GoalDetail") == true {
thingToSaveToCD.setValue(data.timeStamp, forKey: "id")
thingToSaveToCD.setValue(textToSave, forKey: "detailText")
print("succesfully saved \(data.timeStamp) and \(textToSave)")
} else {
replaceTheValueFromCoreData()
}
}
func replaceTheValueFromCoreData(){
print("i have entered the delete core data item")
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let fetchRequest = NSFetchRequest(entityName: "GoalDetail")
let predicate = NSPredicate(format: "id == %@", data.timeStamp)
fetchRequest.predicate = predicate
//let entityDescription = NSEntityDescription.entityForName("GoalDetail", inManagedObjectContext:managedContext)
//let thingToSaveToCD = NSManagedObject(entity: entityDescription!, insertIntoManagedObjectContext: managedContext)
do{
let goal = try appDelegate.managedObjectContext.executeFetchRequest(fetchRequest)
try managedContext.save()
}
catch{
//error
}
我已經通過谷歌和堆棧溢出,但到目前爲止還沒有成功地執行此所以任何幫助是極大的讚賞。