2016-07-09 3 views
1

Ich wollte über Xcode 7.3.1 springen und meinen Code konvertieren, aber ich habe hier ein Problem, das ist wie habe ich es in Swift 1.1 zu verwenden, aber ich bin immer Fehler -Initialiser für bedingte Bindung muss Optional Typ haben, nicht '[NSObject: ANYOBJECT] SwiftyJSON:Initialisierer für bedingte Bindung muss optionalen Typ haben, nicht '[NSObject: AnyObject]' SwiftyJSON

if let userInfo = error.userInfo { <-- Error in this line //Initialiser for conditional binding must have Optional type, not '[NSObject: AnyObject]' 
       if let breadcrumb = userInfo["JSONErrorBreadCrumbKey"] as? NSString { 
        let newBreadCrumb = (breadcrumb as String) + "/\(index)" 
        let newUserInfo = [NSLocalizedDescriptionKey: "JSON Keypath Error: Incorrect Keypath \"\(newBreadCrumb)\"", 
         "JSONErrorBreadCrumbKey": newBreadCrumb] 
        return JSONValue.JInvalid(NSError(domain: "JSONErrorDomain", code: 1002, userInfo: newUserInfo)) 
       } 
      } 

Vielen Dank im Voraus!

+0

'error.userInfo' ist nicht optional. Entfernen Sie 'if' und die Zahnspange – vadian

+0

Danke, dass es funktioniert hat !! – niks290192

Antwort

2

Bedingte Bindung (wenn let) erwartet einen Ausdruck, bei dem das Ergebnis null sein kann. Dieser Fehler bedeutet, dass error.userInfo nie Null ist.

Sie müssen nur die, wenn in der ersten Zeile löschen, wie folgt aus:

let userInfo = error.userInfo 

Der Rest des Codes sollte in Ordnung sein. Sie müssen auch die schließende Klammer } von diesem wenn auch löschen.

Verwandte Themen