如何在 CloudKit 中设置对当前用户的引用?

How to set the reference to the current user, in CloudKit?

我有一个 CKRecordType,其中有一个参考字段,我想将其设置为应用程序的当前用户。

CKRecord * record = [[CKRecord alloc] initWithRecordType:@"UserStatus"];
[record setValue:@"online" forKey:@"status"];
// what user should be?
[record setValue:user forKey:@"user"];

我应该怎么做?

首先,得到 userId:

- (void)getUserId
{
    [self.defaultContainer fetchUserRecordIDWithCompletionHandler:^(CKRecordID * _Nullable recordID,
                                                                    NSError * _Nullable error)
     {
         if (error == nil)
         {
             self.userRecordID = recordID;
         }
     }];
}

然后:

CKRecord * record = [[CKRecord alloc] initWithRecordType:@"UserStatus"];
record[@"status"] = @"online";

CKReference *userReference = [[CKReference alloc] initWithRecordID:self.userRecordID action:CKReferenceActionDeleteSelf];
record[@"user"] = userReference;