2015-04-12 3 views
-3

Когда я пытаюсь загрузить данные из iCloud с помощью Swift, приложение вылетает с этой ошибкой. Почему это? Кажется, я не могу найти ошибку?Почему мое приложение разбилось при использовании cloudkit?

enter image description here

Код:

func LoadEvents() { 

     let predicate:NSPredicate = NSPredicate(value: true) 
     let query:CKQuery = CKQuery(recordType: "Data", predicate: predicate) 
     query.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)] 

     if let database = self.publicDatabase { 

      database.performQuery(query, inZoneWithID: nil, completionHandler: { (records:[AnyObject]!, error:NSError!) in 

       if error != nil { 
        self.alert("Error: \(error.localizedDescription)", Message: "Make sure iCloud is turned on and you are connected to the internet") 
       } else { 
        dispatch_async(dispatch_get_main_queue()) { 
         self.EventsArray.removeAll(keepCapacity: false) 

         for record in records { 
          let usernameRecord:CKRecord = record as CKRecord  
          self.EventsArray.insert(usernameRecord.objectForKey("Events") as String, atIndex: 0) 
          println("1") 
         } 

         //update data 
         self.collectionView.reloadData() 
        } 
       } 
      })   
     } 
} 
+2

Если только консоль рассказала вам, в чем проблема, да? – CW0007007

ответ

3

Пластинка, что вы читаете, вероятно, не имеет поле с именем события. Таким образом, objectForKey вернет nil, который нельзя передать в строку. Вы можете решить это, используя as? String или использовать:

if let event = usernameRecord.objectForKey("Events") as? String{ 
    self.EventsArray.insert(event, atIndex: 0) 
} 
Смежные вопросы