2015-04-12 33 views
-3

當我嘗試使用Swift從iCloud加載數據時,該應用程序崩潰並出現此錯誤。這是爲什麼?我似乎無法找到錯誤?爲什麼我的應用在使用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) 
} 
相關問題