检查用户是否登录ios swift

kvr*_*a13 5 iphone xcode ios swift swift2

我想签入appdelegate.swift文件,如果用户登录时显示的是Instagram之类的HomeviewController,而不显示的是LoginViewController,则IAM使用mysql保存用户数据和php bridge lang

appdalegate.swift中的代码

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

         var rootViewController = self.window!.rootViewController
         let isUserLoggedIn:Bool = NSUserDefaults.standardUserDefaults().boolForKey("isUserLoggedIn")
         if(isUserLoggedIn) {
         let mainStoryboard = UIStoryboard(name: "Main" , bundle: nil)
         let protectedPage = mainStoryboard.instantiateViewControllerWithIdentifier("goToHome") as! HomeViewController
         window!.rootViewController = protectedPage
         window!.makeKeyAndVisible()
         }
         else{
         let mainStoryboard = UIStoryboard(name: "Main" , bundle: nil)
         let loginViewController = mainStoryboard.instantiateViewControllerWithIdentifier("loginview") as! LoginViewController
         window!.rootViewController = loginViewController
         window!.makeKeyAndVisible()


         }


        return true
    }
Run Code Online (Sandbox Code Playgroud)

loginviewcontoler.swift

let success:NSInteger = jsonData.valueForKey("success") as! NSInteger

                        //[jsonData[@"success"] integerValue];

                        NSLog("Success: %ld", success);

                        if(success == 1)
                        {
                            NSLog("Login SUCCESS");

                            let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
                            prefs.setObject(username, forKey: "USERNAME")
                            prefs.setInteger(1, forKey: "ISLOGGEDIN")
                            prefs.synchronize()


                            self.performSegueWithIdentifier("goToHome", sender: self)
Run Code Online (Sandbox Code Playgroud)

ProfileViewController.swift

 override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(true)


        let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
        let isLoggedIn:Int = prefs.integerForKey("ISLOGGEDIN") as Int


        if (isLoggedIn != 1) {

            self.performSegueWithIdentifier("goto_login", sender: self)

        }

        else
        {

            self.usernameLabel.text = prefs.valueForKey("USERNAME") as? String

        }

    }
Run Code Online (Sandbox Code Playgroud)

对不起,很长的问题

小智 -1

在这种情况下不要使用 NSUserDefaults

https://github.com/matthewpalmer/Locksmith

这是使用安全 LogIn / LogOut 的好例子,所以在实施后

if let dictionary = Locksmith.loadDataForUserAccount("accaunt")
{
//go to profile
}
 else
{
//go to login
}
Run Code Online (Sandbox Code Playgroud)