私はテーブルを作成しました:キー、値。コアデータが存在する場合、既存のオブジェクトを更新します
いくつかのパラメータを保存するだけです。キーが存在しない場合は挿入しますが、存在する場合は値を更新します。キーが既にそれがでミリアンペアテーブル内の別のインサートを行う存在する私の場合は
、キー皆無に等しい:それは上のシミュレータ上で同様に動作しなくので、なぜ
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)
}
}
私は理解していませんデバイス...
と同じです。お使いのデバイスで使用できるiOSのバージョンは? –
@SagarChauhan 9.3.2の最新バージョンとそれ以前のバージョンのデバイスでテストしています – Ben
あなたの情報のために、このコードはあなたのiOSバージョンが10.0未満で実行されることはありません。 'fetchRequest = Params.fetchRequest() }' –