Необязательное выражение типа '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