用于检查可选项的“AnyObject”类型的非可选表达式 [英] Non-optional expression of type 'AnyObject' used in a check for optionals

查看:1646
本文介绍了用于检查可选项的“AnyObject”类型的非可选表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在'Dictionary'上创建了一个扩展名来帮助我解析JSON。下面的方法帮助我做到这一点:

I created an extension on 'Dictionary' to help me parse JSON. The method below helps me do this:

func toJSONString() -> String? {
    if let dict = self as? AnyObject {
        if let data = try? JSONSerialization.data(withJSONObject: dict, options: JSONSerialization.WritingOptions(rawValue: 0)) {
            if let json = String(data: data, encoding: String.Encoding.utf8) {
                return json
            }
        }
    }
    return nil
}

此行出现问题:

if let dict = self as? AnyObject {

我收到一条警告,指出检查中使用的AnyObject类型的非可选表达式对于可选项

I get a warning saying "Non-optional expression of type 'AnyObject' used in a check for optionals"

我如何解决这个问题?

推荐答案

p>只需从代码中删除引起警告的行,并通过 JSONSerialization 函数的 self 。这应该没有任何问题:

Simply remove the line that causes warning from your code and pass self as is for the JSONSerialization function. This should work without any issues:

extension Dictionary {

    func toJSONString() -> String? {
        if let data = try? JSONSerialization.data(withJSONObject: self, options: JSONSerialization.WritingOptions(rawValue: 0)) {
            if let json = String(data: data, encoding: String.Encoding.utf8) {
                return json
            }
        }

        return nil
    }
}

这篇关于用于检查可选项的“AnyObject”类型的非可选表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆