Необязательное выражение типа 'AnyObject', используемое при проверке опциональности

Я создал расширение для словаря, чтобы помочь мне разобрать 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 ", используемое при проверке опциональных возможностей"

Как мне решить эту проблему?

2 ответа

Решение

Просто удалите строку, которая вызывает предупреждение из вашего кода, и передайте 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
    }
}

Вы разворачиваете что-то, что уже было развернуто. Взгляните на этот пост stackru

Другие вопросы по тегам