2016-09-05 9 views
-1

ユーザーの場所をクラウドキットで更新したいのですが、私のコードは毎回新しいレコードを保存するだけです。既存のレコードは、どのように変更したり、新しいレコードに置き換えることができますか?swiftでckrecordを修正しようとしています

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 
    { 
     let location = locations.last 
     let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude) 
     let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01)) 
     self.mapView.setRegion(region, animated: true) 
     self.locationManager.stopUpdatingLocation() 
     locationRecord.setObject(location, forKey: "location") 
     let publicData = CKContainer.defaultContainer().publicCloudDatabase 
     publicData.saveRecord(locationRecord) { record, error in 
     } 
      if error == nil 
      { 
       print("Location saved") 
       self.loc1 = location! 
      } 
    } 
+0

保存を実行し、元のレコードIDなど

var locationRecordforUser = (whatever your CKrecord was when you created it) 

への参照をキャッシュすることにより、これを行うだろう'? – matt

+0

let locationRecord = CKRecord(recordType: "location")@matt – Steve

+0

あなたの問題があります。 _existing_レコードを変更したいのであれば、なぜ新しい_レコードを作成していますか? – matt

答えて

1

レコードを変更するには、自分のオリジナルレコードをプルする必要があります。詳細を更新し、レコードを保存する必要があります。

私はその後、上記のあなたの場所の方法では、単に、それをつかむ変更を行い、 `locationRecordは何

record.setValue(locationbits, forKey: locationField) 
      self. publicData.saveRecord(record, completionHandler: { (savedRecord, error) in 
       dispatch_async(dispatch_get_main_queue()) { 
        completion(savedRecord, error) 
       } 
      }) 
関連する問題