2016-01-09 3 views
1

Я пытаюсь создать запись и набор контрольных записей в cloudkit. Сначала создаю категорию, а затем добавляю несколько записей мест, которые ссылаются на эту категорию. Когда я создаю категорию, я использую timeStamp для идентификатора записи и пытаюсь установить этот RecordID в качестве ссылки для каждой добавленной записи местоположения. Однако, когда я это делаю, я получаю запись категории и все созданные записи местоположения, но ссылочное поле (с именем Категория) пустое. Это то, что я делаю. Что мне не хватает?Добавление ссылки в CloudKit Record

func createCategoryandLocations() { 
     let container = CKContainer.defaultContainer() 
     let publicDatabase = container.publicCloudDatabase 
     let timestampAsString = String(format: "%f", NSDate.timeIntervalSinceReferenceDate()) 
     let timestampParts = timestampAsString.componentsSeparatedByString(".") 
     let recordID = CKRecordID(recordName: timestampParts[0]) 
     let categoryRecord = CKRecord(recordType: "Category", recordID: recordID) 
     categoryRecord.setObject(category.name, forKey: "CategoryName") 
     let CatReference = CKReference(recordID: recordID, action: CKReferenceAction.DeleteSelf) 

     publicDatabase.saveRecord(categoryRecord) { 
      record, error in 
      if error != nil { 
       print(error?.localizedDescription) 
      } else { 
       print("Recorded") 
       // Now upload locations for recordID 
       print("refID \(CatReference)") 
       for location in self.locations { 
        let coordinates = CLLocation(latitude: location.latitude, longitude: location.longitude) 
        let locationRecord = CKRecord(recordType: "Location") 
        locationRecord.setObject(location.address, forKey: "Address") 
        locationRecord.setObject(CatReference, forKey: "Categoy") 
        locationRecord.setObject(location.site,forKey: "Name") 
        locationRecord.setObject(coordinates, forKey: "Coordinates") 
        locationRecord.setObject(location.comment, forKey: "Comment") 
        publicDatabase.saveRecord(locationRecord) { 
         record, error in 
         if error != nil { 
          print(error?.localizedDescription) 
         } else { 
          print("Recorded \(location.site)") 
         } 
        } 
       } 
      } 
     } 
    } 

ответ

1

Потому что вы выбрали поле «Categoy» вместо «Category». Оно должно быть:

locationRecord.setObject(CatReference, forKey: "Category") 

Вместо:

locationRecord.setObject(CatReference, forKey: "Categoy") 
+0

Спасибо, так как установить эталонную Категория тогда? –

+0

Я имел в виду, что у вас есть опечатка в имени поля. –

+1

Duh. Невозможно увидеть лес для деревьев –

Смежные вопросы