用于检查可选项的非可选expression式“AnyObject”

我在'Dictionary'上创build了一个扩展来帮助我parsingJSON。 下面的方法可以帮助我做到这一点:

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 { 

我得到一个警告,说“检查optionals中使用的非可选types的AnyObject”

我该如何解决这个问题?

只需从代码中删除导致警告的行,然后像JSONSerialization函数那样传递selfJSONSerialization 。 这应该没有任何问题:

 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 } } 

你正在解开已经解开的东西。 看看这个stackoverflowpost