簡體   English   中英

檢查可選內容時使用的'AnyObject'類型的非可選表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM