Nicht-optional-Ausdruck vom Typ "AnyObject" gebraucht in einem check für die Optionen

Erstellte ich eine Erweiterung auf 'Wörterbuch', um mir zu helfen parse JSON. Die folgende Methode hilft mir dabei:

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
}

Tritt das Problem auf diese Zeile:

if let dict = self as? AnyObject {

Bekomme ich eine Warnung aus, daß "Non-optionaler Ausdruck vom Typ "AnyObject" gebraucht in einem check für die Optionen"

Wie gehe ich über die Lösung dieses Problem?

  • Sie brauchen nicht zu packen oder cast self Sie bereits wissen, dass es ein Wörterbuch. Geben Sie einfach self direkt an der JSONSerialization.data(...) Funktion.
  • Die Fehlermeldung sagt: Das Objekt ist nicht ein optionales, if let können nicht verwendet werden.
  • Ahhh, das macht Sinn. Ich danke Ihnen so sehr
  • Könnten Sie beantworten Ihre eigene Frage bitte, daran interessiert zu sehen, die Lösung.
InformationsquelleAutor Faisal Syed | 2016-09-30
Schreibe einen Kommentar