2016-06-04 4 views
-1

Diese Frage wurde einige Male gestellt, und ich habe mir so viele Antworten angesehen, aber ich kann die Antwort nicht bekommen, weil a) Sie danach gefragt haben vor langer Zeit und der Code funktioniert nicht mehr (aktualisiert) oder b) Es ist nicht für meinen Fall geeignet.Typ '()' entspricht nicht dem Protokoll 'Boolean Type'

Hier ist der Code:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {  

//SET INITIAL CONTROLLER 
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    var initialViewController: UIViewController 
    if() //your condition if user is already logged in or not 
    { 
     // if already logged in then redirect to MainViewController 

     initialViewController =  mainStoryboard.instantiateViewControllerWithIdentifier("MainController") as! MainViewController // 'MainController' is the storyboard id of MainViewController 
    } 
    else 
    { 
     //If not logged in then show LoginViewController 
     initialViewController = mainStoryboard.instantiateViewControllerWithIdentifier("LoginController") as! LoginViewController // 'LoginController' is the storyboard id of  LoginViewController 

    } 

    self.window?.rootViewController = initialViewController 

    self.window?.makeKeyAndVisible() 
return true 

}

Dies ist der Code aus dem folgenden Threads: Show another view controller at the first launch and not again

Ich versuche, diese zu verwenden, aber der Fehler kommt auf der Linie " ob()". Gab es ein Update, das das beseitigt? Oder habe ich gerade einen falschen Code eingegeben? Es ist am richtigen Ort (AppDelegate.swift).

Wenn Sie irgendwelche weiteren Artikeln oder Informationen benötigen, Kommentar direkt unter

Vielen Dank im Voraus!

P. S: Ich würde nur auf seine Antwort kommentiert haben, aber ich habe nicht 50 Punkte

+2

Die Aussage 'if()' bedeutet, dass Sie die Klammern mit einer bedingten Anweisung ersetzen müssen wie: 'wenn a == b ' – ColGraff

Antwort

1

Sie if Aussage nichts Auswertung ist, das ist, warum Sie diesen Fehler erhalten. Der folgende Code wird vorausgesetzt, Sie Speichern der Status des Benutzers in NSUserDefaults (userKey)

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {  

//SET INITIAL CONTROLLER 
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    var initialViewController: UIViewController 

    //retrive the user key or status from NSUserDefaults here 
    let defaults = NSUserDefaults.standardUserDefaults() 
    if let userKey = defaults.stringForKey("userKey"){ 
     // if already logged in then redirect to MainViewController 

     initialViewController =  mainStoryboard.instantiateViewControllerWithIdentifier("MainController") as! MainViewController // 'MainController' is the storyboard id of MainViewController 
    } 
    else 
    { 
     //If not logged in then show LoginViewController 
     initialViewController = mainStoryboard.instantiateViewControllerWithIdentifier("LoginController") as! LoginViewController // 'LoginController' is the storyboard id of  LoginViewController 

    } 

    self.window?.rootViewController = initialViewController 

    self.window?.makeKeyAndVisible() 
return true 
} 
+0

Es gibt einen Fehler, der besagt" Fehlende Rückgabe in einer Funktion, von der erwartet wird, dass sie 'Bool' zurückgibt "... Ansonsten wird alles besser. –

+0

Wo genau erhalten Sie diesen Fehler? – kye

+0

Der Fehler zeigt sich auf einer geschlossenen Klammer. Die Klammer, die endet ** func-Anwendung (Anwendung: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObjekt: AnyObject]?) -> Bool {** –