对象-C-调用用户会话不会调用所有数据吗?

时间:2019-02-12 17:33:24

标签: ios objective-c

我的用户首次登录我的应用程序后,我保存了他们的会话信息,以便以后调用它,这样他们就无需多次登录。也就是说,在我的应用的某些部分中,我正在从会话中提取数据:

ViewController.m

 NSString *amVerified = [session user][@"user"][@"field_checked_messages"][@"und"][0][@"safe_value"];

奇怪的是,第一次打开会话时,将返回以下数据:

 2019-02-08 13:05:59.651056-0800[4681:1246584] SHOW ME EVERYTHING {
        sessid = "sesshere";
        "session_name" = nameofsession;
        token = "tokenhere";
        user =     {
            access = 1549659837;
            created = 1459875505;
            data =         {
                "ckeditor_auto_lang" = t;
                "ckeditor_default" = t;
                "ckeditor_lang" = en;
                "ckeditor_show_toggle" = t;
                "ckeditor_width" = "100%";
                "remember_me" = 0;
            };
            "field_address" =         {
                und =             (
                                    {
                        format = "<null>";
                        "safe_value" = "ADDRESS, Vancouver";
                        value = "ADDRESS, Vancouver";
                    }
                );
            };
            "field_ambassador" =         (
            );
            "field_checked_messages" =         {
                und =             (
                                    {
                        format = "<null>";
                        "safe_value" = "0 10) 9) 10) 10)";
                        value = "0 10) 9) 10) 10)";
                    }
                );
            };

上面提到的NSString会按需填充。

但是 如果我的用户关闭了一段时间的应用程序,然后稍后返回到应用程序并重新打开了会话,则会话数据仅返回一半它应该是什么-例如它不返回与“用户”相关的任何字段:

 2019-02-08 13:05:59.651056-0800[4681:1246584] SHOW ME EVERYTHING {
        sessid = "sesshere";
        "session_name" = nameofsession;
        token = "tokenhere";
        user =     {
            access = 1549659837;
            created = 1459875505;
            data =         {
                "ckeditor_auto_lang" = t;
                "ckeditor_default" = t;
                "ckeditor_lang" = en;
                "ckeditor_show_toggle" = t;
                "ckeditor_width" = "100%";
                "remember_me" = 0;
            };

并且NSString amVerified(自然地)为NULL。是否有人对重新打开应用程序时为什么不返回“用户”字段有任何见解?这是我用来将用户重新登录到应用程序中的代码:

 [DIOSUser userMakeSureUserIsLoggedInWithUsername:[keychain objectForKey:(id)kSecAttrAccount]
                                                 andPassword:[keychain objectForKey:(id)kSecValueData]
                                                     success:^(AFHTTPRequestOperation *op, id response) {


[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:response] forKey:@"diosSession"];

[[NSUserDefaults standardUserDefaults] synchronize];


                                                        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
                                                         UITabBarController *yourViewController = (UITabBarController *)[storyboard instantiateViewControllerWithIdentifier:@"tabBar"];
                                                         [self.navigationController pushViewController:yourViewController animated:YES];



UITabBarController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"tabBar"]; 
 [viewController setSelectedIndex:0];


                                                    }
                                                     failure:^(AFHTTPRequestOperation *op, NSError *err) {
                                                         // failure(err);


                                                     }
             ];

        }

0 个答案:

没有答案