ios - Parse.com 检查好友 请求重复 iOS

标签 ios objective-c parse-platform parse-cloud-code

我希望避免与 Parse.comCloud CodeiOS Code 发生重复。 这是我的数据库中的类(class): Screenshot

我希望当“from”userId已经发送到“to”userId时,不会发送第二个friendRequest。

这是我的 iOS 代码:

PFUser *selectedUser = [self.allUsers objectAtIndex:indexPath.row];
//request them
PFObject *friendRequest = [PFObject objectWithClassName:@"FriendRequest"];
friendRequest[@"from"] = self.currentUser;
friendRequest[@"fromUsername"] = [[PFUser currentUser] objectForKey:@"username"];
//selected user is the user at the cell that was selected
friendRequest[@"to"] = selectedUser;
// set the initial status to pending
friendRequest[@"status"] = @"pending";
[friendRequest saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {

    if (succeeded) {


        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sent !" message:@"Friend request sent" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        [alert show];



    } else {

        // error occurred
    }
}];

最佳答案

您好,如果您已经发送了好友请求或从“CurrentUser”到“SelectedUser”,您可以按照以下方式进行获取:

-(void)fetchfriendrequestAndSave{

    PFUser *selectedUser = [self.allUsers objectAtIndex:indexPath.row];
    //request them
    PFObject *friendRequest = [PFObject objectWithClassName:@"FriendRequest"];
    friendRequest[@"from"] = self.currentUser;
    friendRequest[@"fromUsername"] = [[PFUser currentUser] objectForKey:@"username"];
    //selected user is the user at the cell that was selected
    friendRequest[@"to"] = selectedUser;
    // set the initial status to pending
    friendRequest[@"status"] = @"pending";

    PFQuery*query = [PFQuery queryWithClassName:@"FriendRequest"];
    [query whereKey:@"from" equalTo:self.currentuser];
    [query whereKey:@"to" equalTo: selectedUser];
    [query findObjectsInBackgroundWithBlock:^(NSArray*FriendRequestArray, NSError*error){

        if(!error){

            NSArray*temp = [NSArray arrayWithArray:object];
            if(temp.count==0){

                //Save & Send Request

                [friendRequest saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {


                    if (succeeded) {


                        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sent !" message:@"Friend request sent" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                        [alert show];



                    } else {

                        // error occurred
                    }
                }];


            }else{

                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"FriendREquest ERROR" message:@"Friend Request is Already Submitted" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                [alert show];


            }


        }else{

        }

    }];
}

通过 PFQuery:

您搜索“CurrentUser”和“SelectedUser”的值是否在 Parse.com 服务的同一行中可用!如果是,它将返回一个数组“temp”...如果不是,它也会返回一个数组...但是如果它是 0,我们将计算这个数组(所以这意味着其中没有值,简单来说...... .无好友请求

if (NSArray*temp.count == 0) 保存请求!

希望这对您有帮助!对我来说它有效

关于ios - Parse.com 检查好友 请求重复 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30213837/

相关文章:

ios - 按钮在 iOS8 上大小不正确,在 iOS7 上正确

iphone - 如何从表中删除所有行?

swift - iOS SWIFT 和 Parse 获取日期和时间

swift - 如何在 Swift 中比较指针解析对象?

iOS - 跟踪我的安装来自哪些广告事件

javascript - Spotify Web API - 通过 native 移动应用程序而不是浏览器对用户进行身份验证?

ios - 将 TableView 部分标题传递给另一个 View 的导航栏标题

ios - Storyboard中的 UIProgressView 值

ios - 检查日期是否在范围内

java - 我如何检查 Parse 数据类 Android 中是否已经存在一个值