PFInstallation 并添加指向 PFUser 的指针

PFInstallation and adding a pointer to a PFUser

我正在尝试掌握 Parse 并构建一个简单的聊天应用程序。对于我的 loginsignup 代码,我有这个片段:

PFInstallation *installation = [PFInstallation currentInstallation];
        installation[@"user"] = [PFUser currentUser];
        [installation saveInBackground];

此代码将 PFInstallation 连接到 PFUser,因此可以通过查询用户名发送推送。

当应用程序加载时,我首先检查是否已有用户登录:

if ([PFUser currentUser]) {
    [self performSegueWithIdentifier:@"showFriends" sender:nil];
} 

如果用户已经登录,则加载显示好友视图控制器。我是否需要在这段代码中重新设置安装以匹配用户?即

  if ([PFUser currentUser]) {
        PFInstallation *installation = [PFInstallation currentInstallation];
        [installation[@"user"] = [PFUser currentUser];
        [installation saveInBackground];
        [self performSegueWithIdentifier:@"showFriends" sender:nil];


} 

或者是因为用户已经登录就不需要了?我是否认为安装文件是唯一的并且只创建一次,将设备与推送服务匹配,所以除非我想更新我添加的 PFUser 字段,否则该文件没有真正改变? 谢谢

if a user is already logged in the show friends view controller is loaded. Do I need to set the installation again in this code to match the user?

没有。安装和用户 类 独立行动,但在您的情况下,由于您设置了关系,因此它们也可以一起行动。由于您已经在应用程序 didFinishLaunchingWithOptions: 中设置它,该设备已使用您提供的令牌(设备令牌)唯一标识其安装,因此您不必再次调用它。 用户会话是不同的。如果您希望用户登录,您必须在某处提供登录名 VC,因为它不会在第一次启动时出现。

Am I right in thinking that the installation file is UNIQUE and only created once, matching the device to the push service so nothing really changes in that file unless I want to update the PFUser field I added? thanks

是的。这是相当准确的。只是不要混淆。 PFUser currentUserPFInstallation currentInstallation 不同,任何人都可以登录设备,但该应用程序只能在设备上安装一次,从而使安装独一无二。不是用户。