繁体   English   中英

AnyObject不能转换为String

[英]AnyObject is not convertible to String

下面的代码返回错误“AnyObject不可转换为String”:

   override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Podcast")
    var query = PFQuery(className: "Podcast")
    query.selectKeys(["name", "artist" ])
    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]!, error: NSError!) -> Void in
        if error == nil {
            let name: NSArray = objects as NSArray
            println("objects \(name)")
            cell.textLabel?.text = name["name"]
        }
    }

如果我在“name [”name“]”旁边添加“as NSString”。 然后我得到错误“类型Int不确认StringLiteralConvertible”

有什么想法吗? 我从Parse中提取数据。

name["name"]将返回AnyObject?类型的值AnyObject? 它是可选的,因为字典查找总是返回选项,因为键可能无效。 你应该有条件地将它转换为NSString类型,这是一个对象类型,然后使用可选绑定( if let )将它绑定到变量,如果循环不返回nil

if let myname = name["name"] as? NSString {
    cell.textLabel?.text = myname
}

或者如果你想使用空字符串,如果“name”不是有效键,那么nil合并运算符 ?? 派上用场:

cell.textLabel?.text = (name["name"] as? NSString) ?? ""

试试这个cell.textLabel?.text = name["name"] as String

希望能帮助到你!

在Swift 3中

cell.textLabel?.text = name["name"] as! String?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM