Xcode 8 beta 6 AnyObject Swift 3 更改

标签 xcode swift3 xcode8-beta6

Xcode beta 6 改变了一些 Swift 语言

Since ‘id’ now imports as ‘Any’ rather than ‘AnyObject’, you may see errors where you were previously performing dynamic lookup on ‘AnyObject’.



我已经尝试过在执行动态查找之前显式转换为 AnyObject 或强制转换为特定对象类型的修复程序

但我不确定我做对了 - 有人可以帮忙吗,这里是 Beta 5 的原始工作代码
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! SpecialCell
        let maindata = values[(indexPath as NSIndexPath).row]
        cell.name.text = maindata["name"] as? String
        cell.id.text = maindata["id"] as? String
        //team_id.text = maindata["team_id"] as? String

        return cell
    }

https://www.dropbox.com/s/ln0vx3b9rbywv83/Screen%20Shot%202016-08-18%20at%2014.32.23.png?dl=0

最佳答案

根据 beta 6 发行说明,您必须(桥接)转换到 AnyObject

cell.name.text = (maindata["name"] as AnyObject) as? String

或强制施放
cell.name.text = maindata["name"] as! String

这是比普通字典更喜欢具有不同属性类型的自定义类/结构的另一个原因。

关于Xcode 8 beta 6 AnyObject Swift 3 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39020058/

相关文章:

ios - 在 viewDidLoad 之前调用 UITableView 委托(delegate)方法

objective-c - -DNDEBUG 和 -DNS_BLOCK_ASSERTIONS 标志有什么区别

ios - 所有 Build for iTunes Connect,导入此版本时出错

swift - 测试iOS APP中不显示插页式广告

arrays - fatal error : Index out of range (Arrays)

swift - 如何在 swift 中从 xib/nib 在启动(显示)窗口中执行代码

ios10 - Xcode 8 Beta 6 不支持 iOS 10 Beta 7 sdk

ios - HealthKit - 请求授权(toShare :read:completion:) always succeeds

swift - viewWillEnterForeground问题

ios - Swift 3 中的动态对象创建