用于检查可选项的“AnyObject”类型的非可选表达式 [英] Non-optional expression of type 'AnyObject' used in a check for optionals
本文介绍了用于检查可选项的“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屋!
查看全文