2016-04-07 24 views
0

Kullanıcıları CoreData'da bir kırıntı noktası olarak kaydetmeye çalışıyorum, böylece uygulamayı bırakmış olsalar bile geri alabilirim. Şu anda aşağıdaki kod, konumlarını CloudKit'e kaydediyor, ancak ekmek kırıntılarını geri almak için onlara Core Data'ya kaydetmek için en iyi şekilde söylendi.Swift'deki bir veri kırıntısını nasıl kaydederim?

Sadece bunun için nasıl gittiğimi merak ediyorum?

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    let location = locations.last! 
    let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude) 
    addCrumbPoint(center) 

    // Add to Cloudkit 
    let locationRecord = CKRecord(recordType: "location") 
    locationRecord["location"] = location 
    let publicData = CKContainer.defaultContainer().publicCloudDatabase 
    publicData.saveRecord(locationRecord) { 
     record, error in 
    } 
} 
+0

Birden fazla ekmek kırıntısı mı koruyacaksınız yoksa sadece bir tane mi? –

+0

Sadece bir, teşekkürler. –

cevap

2

Yalnızca bir kırıntı konumunu kaydettiğiniz için, Çekirdek Veriler uygun değil. Görüntülemeye, aramaya, vb. Ihtiyaç duyacağınız bir ekmek kırıntıları koleksiyonu kaydediyor olsaydınız mantıklı olabilir.

Tek bir CLLocation için NSUserDefaults'u kullanın. CLLocationNSCoding uyan, buna bağlı olarak bir NSData dönüştürmek ve kaydetmek istiyorum: Veri okurken

let locationData = NSKeyedArchiver.archivedDataWithRootObject(location) 
NSUserDefaults.standardUserDefaults().setObject(locationData, forKey: "breadcrumb") 

, geri CLLocation dönüştürmek için NSKeyedUnarchiver kullanmak sonra "location" değerini bakmak ve.