次の簡単な方法を検討してください。
- (void)connectSpouseToCurrentUser:(PFUser *)spouse completionBlock:(void (^)(NSError *error))completionBlock {
    [PFUser currentUser][@"spouse"] = spouse;        
    [[PFUser currentUser] saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (error) {
            NSLog(@"Error: %@", [error userInfo]);
        }
        spouse[@"spouse"] = [PFUser currentUser];
        [spouse saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
           // This code never executes
            NSLog(@"Error: %@", error);
            self.spouse = spouse;
            if (completionBlock) {
                completionBlock(error);
            }
        }];
    }];
}
何らかの理由で、最新の完了ブロックが呼び出されていません。
なぜこれが起こっているのか誰にも分かりますか?