在Parse和SWIFT中从数组中检索和转换数据

时间:2016-09-01 20:45:23

标签: ios arrays swift heroku parse-platform

当我尝试检索并将Parse中的数组元素附加到代码中创建的数组时,此错误始终显示:

  

无法转换类型' __ NSArrayM' (0x10b281b60)到' NSString'   (0x10bdc5b48)。

然而,当我使用print时,它没有错误,我可以获取数据

 var query = PFQuery(className: "Courses")

 query.whereKey("subject", equalTo: "\((object["course"] as! String))")                        
 query.findObjectsInBackgroundWithBlock { (objects, error) in

 if let objects = objects
 {
     for object in objects
     {                       
         print(object["subject"] as! String)
         self.courses.append(object["subject"] as! String)
         print(object.valueForKey("timeToShow")!)  
         // it works to print the elemnts in array from parse self.dates.append((object.valueForKey("timeToShow") as! String))  
         // this line shows the error down !

         self.tableView.reloadData()
     }
}

Picture with more details

1 个答案:

答案 0 :(得分:3)

根据你的说法:

  1. self.datesString
  2. 类型的数组
  3. object.valueForKey("timeToShow")String
  4. 类型的数组
  5. 您希望将object.valueForKey("timeToShow")中的值附加到self.dates
  6. 的末尾

    因此,不需要转换为String并尝试追加,而是需要追加数组的所有值(注意这取决于您使用的Swift的版本):

    let times = object.valueForKey("timeToShow") as! [String]
    self.dates += times 
    
    // Or:
    self.dates.extend(times) // Swift 1.2
    self.dates.appendContentsOf(btimes) // Swift 2
    self.dates.append(contentsOf: times) // Swift 3
    

    将数组附加到取自this StackOverflow example的另一个数组。