0

每次人们打开应用程序时,我都会运行一些代码。它可以确定此人是否是第一次登录,或者他们是否是重复用户。根据该信息,该应用程序的行为会有所不同。但它并没有像我想象的那样对我有用。这是代码:

- (void)viewDidAppear:(BOOL)animated
{            
    // Get user data. 
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];

    // First arg is name and second is if not found.
    NSString *user_id = [standardUserDefaults objectForKey:@"user_id"]; 
    bool first_time_cookie = [standardUserDefaults boolForKey:@"first_time_cookie"];

    [super viewDidLoad];

    if(!first_time_cookie)
    {
        // First time on the app, so set the user cookie.
        [standardUserDefaults setBool:YES forKey:@"first_time_cookie"];

        [[NSUserDefaults standardUserDefaults] synchronize];  

        // Make new account 

        [standardUserDefaults synchronize];           
    }
    else 
    { 
        // DO REPEAT USER ACTIONS
    }

    [[NSUserDefaults standardUserDefaults] synchronize];    
}

我在我的 userDefaults 中搞混了。谁能告诉我哪里出错了?正在发生的问题是系统认为许多重复用户实际上是新用户。

谢谢!

4

1 回答 1

2

我怀疑这个问题可能与使用bool而不是BOOL. 在这里看到这个问题

bool映射到 true/false 的值,而BOOL映射到 YES/NO。您正在first_time_cookie设置为 YES(一个BOOL值)。因此,尝试:

BOOL first_time_cookie = [standardUserDefaults boolForKey:@"first_time_cookie"];
于 2012-12-18T15:45:14.487 回答