[英]Retrieving and casting data from an array in Parse and SWIFT
当我尝试检索并将Parse中的数组元素附加到代码中创建的数组时,总是显示此错误:
无法将类型'__NSArrayM'(0x10b281b60)的值强制转换为'NSString'(0x10bdc5b48)。
但是,当我使用打印时,它可以正常工作并且可以获取数据
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()
}
}
从你说的:
self.dates
是String
类型的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
将一个数组附加到从此StackOverflow示例获取的另一个数组中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.