Kii BLOG

打造一个远端存储的记事本应用 iOS版本(2)

如同之前Android版本介绍的一样,由于数据完全在线,并且读自己帐号下的内容,所以我们需要用户先完成登录步骤。

NotePad_iOS

作为演示程序,我们的界面还是做得比较简洁一些,用户名和密码的输入框,以及注册或登录按钮。为了显示更详细的出错记录,我在面板上放置一个大的TextView,用于在Kii Cloud SDK报错时,将error出错信息输出到该处,便于查看。

在Android版本中,我们使用了同步方法来调用注册或者登录,自己包装了一个AsyncTask,这样方便于显示ProgressDialog之类。在iOS版本中,因为inline block使用起来更方便,这里直接使用了异步回调的方法。

以登录为例

NSString *username = [self.usernameField text];
    NSString *password = [self.passwordField text];
    [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    [KiiUser authenticate:username withPassword:password andBlock:^(KiiUser *user, NSError *error) {
        [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
        if (error == nil) {
            [self.delegate login:user];
        } else {
            [[iToast makeText:@"Login failed"] show];
            [self.textView setText:error.description];
        }
    }];

这里我们将主界面作为Delegate传过来,以便在登录后就登录信息传递回主界面,便于通知主界面做刷新以及保存token的工作。

在主界面的代码中,我们不适宜直接存用户的用户名和密码,因此只存储了用户的token。

NSString *token = [user accessToken];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:token forKey:@"token"];
[defaults synchronize];

而对于检查用户是否登录,我们可以在主界面载入时,检查是否有存取好的token,如果有,则可以在后续环节中用token来登录。没有,则打开登录界面。

下一节我们会讲述Note的存储和获取

 

打造一个远端存储的记事本应用 iOS版本(1)

打造一个远端存储的记事本应用 iOS版本(2)

打造一个远端存储的记事本应用 iOS版本(3)

发表评论