0

将我的 swift 代码转换为 swift 3 后。我遇到以下错误:

( AnyObject 不是 UIFontDescriptor 的子类型)在我的代码中

 public init(controller : UIViewController) {
    super.init()

    addResponderFromView(controller.view)
}

deinit {

    for infoDict in textFieldInfoCache {

        let view : AnyObject = (infoDict as AnyObject).object(forKey: kIQTextField)!

        if let textField = view as? UITextField {

            let returnKeyTypeValue = infoDict[kIQTextFieldReturnKeyType] as! NSNumber
            textField.returnKeyType = UIReturnKeyType(rawValue: returnKeyTypeValue.intValue)!

            textField.delegate = infoDict[kIQTextFieldDelegate] as! UITextFieldDelegate?
        } else if let textView = view as? UITextView {

            textView.returnKeyType = UIReturnKeyType(rawValue: (infoDict[kIQTextFieldReturnKeyType] as! NSNumber).intValue)!

            let returnKeyTypeValue = infoDict[kIQTextFieldReturnKeyType] as! NSNumber
            textView.returnKeyType = UIReturnKeyType(rawValue: returnKeyTypeValue.intValue)!

            textView.delegate = infoDict[kIQTextFieldDelegate] as! UITextViewDelegate?
        }
    }

    textFieldInfoCache.removeAllObjects()
}

请看一下图片。任何想法如何解决这个问题?在此处输入图像描述

4

1 回答 1

0

我的猜测是,在 Swift 3 中,UIFontDescriptor是一个结构。

结构是值类型,而不是对象类型。( Any, not AnyObject.) 尝试将其转换为Any而不是AnyObject.

于 2017-08-03T20:02:45.873 回答