11
Önemli hatayı alıyorum: "if (NSKeyedUnarchiver.unarchiveObject(with: loadedData as! Data) as? CKRecord) != nil
" satırında 'NSTaggedPointerString' türünde '' NSData '' türünde bir değer verilemedi.CloudKit Kayıtlarının Değiştirilmesiyle İlgili Sorun
Başka önemli bir hata daha var: "Varsayılan konum kaydedicisini kaydetmeyi denediğimde" "locationAppDavaları/NSNserDefaults/CFPreferences değeri olarak konumlandırılmadı."
if let loadedData = defaults1.object(forKey: "locationData") as? Data {
let litt = NSKeyedUnarchiver.unarchiveObject(with: loadedData) as! CKRecord
let publicDB = CKContainer.default().publicCloudDatabase
publicDB.fetch(withRecordID: litt.recordID ,completionHandler: {
(record, error) in
if error == nil
{
publicDB.delete(withRecordID: (record?.recordID)!, completionHandler: {
(record, error) in
if(error == nil){
print("old record delete")
let id = self.locationRecord.recordID.recordName
self.locationRecord.setObject(locations, forKey: "location")
self.defaults1.set(id, forKey: "locationData")
self.updateLocationRecord(locations: locations)
}
else{
}
})
}else{
print("Error fetching previous record")
}
})
}
}
}
Sen varolan kaydını sorgulamak ve güncellemek zorunda: Burada
– rmaddyKullanıcıların, alınıp alındığını kaydettiğinden nasıl emin olabilirim? @rmaddy – Steve
'location' kayıt türünüzün uygun alanlara ihtiyacı var. Şu anda sadece bir 'konum 'alanına sahipmişsiniz gibi görünüyor. Yani sahip olduğunuz tek şey sadece bir 'CLLocation' alanıyla bir "konum" kaydı. Belirli bir kaydın ne için olduğunu bilmenin bir yolu yok. – rmaddy