当我尝试检索并将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()
}
}
答案 0 :(得分:3)
根据你的说法:
self.dates
是String
object.valueForKey("timeToShow")
是String
object.valueForKey("timeToShow")
中的值附加到self.dates
因此,不需要转换为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的另一个数组。