[英]Non-optional expression of type 'AnyObject' used in a check for optionals
我在'Dictionary'上創建了擴展,以幫助我解析JSON。 下面的方法可以幫助我做到這一點:
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'的非可選表達式”
我該如何解決這個問題?
只需從代碼中刪除引起警告的行,並像JSONSerialization
函數一樣傳遞self
JSONSerialization
。 這應該可以正常工作:
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
}
}
您正在解包已經解包的東西。 看看這個stackoverflow帖子
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.