Ich habe eine Tabelle erstellt: Schlüssel, Wert.Kerndaten aktualisieren ein vorhandenes Objekt, wenn es existiert
Es ist nur für das Speichern einiger Parameter, wenn der Schlüssel nicht existiert, mache ich eine Einfügung, aber wenn es existiert, aktualisiere ich den Wert.
In meinem Fall, wenn der Schlüssel bereits vorhanden Motor hat einen weiteren Einsatz in ma Tabelle mit Schlüssel gleich Null:
public static func insertValueWithKey(context: NSManagedObjectContext, key:String, value:String){
let fetchRequest : NSFetchRequest<NSFetchRequestResult>
if #available(iOS 10.0, *) {
fetchRequest = Params.fetchRequest()
} else {
fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Params")
}
let predicate = NSPredicate(format: "key=%@", key)
fetchRequest.predicate = predicate
do {
let results = try context.fetch(fetchRequest)
if(results.count != 0){
let paramsDescription = NSEntityDescription.entity(forEntityName: "Params", in: context)
let params = NSManagedObject(entity: paramsDescription!, insertInto: context) as! Params
params.value = value
do {
try context.save()
} catch let error as NSError {
print ("Error first demande insertion \(error)")
}
} else if (results.count == 0) {
let params = NSEntityDescription.insertNewObject(forEntityName: "Params", into: context) as! Params
params.key = key
params.value = value
context.insert(params)
do {
try context.save()
} catch let error as NSError {
print ("Error first demande insertion \(error)")
}
}
} catch {
let fetchError = error as NSError
print(fetchError)
}
}
Ich verstehe nicht, warum, weil es auch auf Simulator arbeiten, aber nicht auf Gerät ...
Welche Version von iOS auf Ihrem Gerät verfügbar? –
@SagarChauhan Ich teste auf einem Gerät mit der letzten Version und einem älteren auf 9.3.2 – Ben
Zu Ihrer Information, diesen Code nie ausführen, wenn Ihre iOS-Version in weniger als 10.0. 'if #available (iOS 10.0, *) { fetchRequest = Params.fetchRequest() }' –