Запрос нескольких значений через анализ

Поэтому мое приложение загружается в контакты пользователя и сохраняет его телефонные номера, но я хочу запросить эти телефонные номера по сравнению с теми, которые хранятся в Parse, чтобы определить, использует ли приложение какие-либо их контакты.

Итак, я знаю, как обрабатывать каждый номер телефона как отдельный запрос, используя что-то вроде кода ниже внутри цикла for,

                NSString *phoneNumber = CFBridgingRelease(ABMultiValueCopyValueAtIndex(phoneNumbers, i));
               //parse query for any matches to the phone number
PFQuery *query = [PFQuery queryWithClassName:@"_User"];
[query whereKey:@"phoneNumber" equalTo:phonenumberfieldfriend.text];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        // The find succeeded.
        NSLog(@"Successfully retrieved %d users.", objects.count);
        // Do something with the found objects
        if (objects.count == 0) {
            //uialert letting the user know that no phone number matches the query
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No User"
                                                            message:@"No user matches this phone number"
                                                           delegate:self
                                                  cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
            [alert show];
            phonenumberfieldfriend.text = @"";







        }
        //if there is only one number matching the query
        if (objects.count ==1) {
            for (PFObject *object in objects) {
                NSLog(@"%@", objects);
                usernamefriend =[ object objectForKey:@"username"];
                numberfriend = [object objectForKey:@"phoneNumber"];
                firstnamefriend = [object objectForKey:@"firstName"];
                lastnamefriend  = [object objectForKey:@"lastName"];
                emailfriend = [object objectForKey:@"email"];

                add.hidden=true;
                phonenumberfieldfriend.hidden=true;
                confirmuser.hidden=false;
                NSLog(@"one user entered %@",usernamefriend);



            }
        }
        //if there is more than one phonenumber matching the query as
        //the user to input the friends username
        //instead
        if (objects.count>1) {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"More than one user!"
                                                            message:@"More than one user with this number please enter a username instead!"
                                                           delegate:self
                                                  cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
            [alert show];
             phonenumberfriend.text=@"Please enter a username";
            add.hidden=true;
            adduser.hidden=false;

        }

    } else {
        // Log details of the failure
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }
}];}

но хотелось бы узнать, можно ли искать все номера телефонов контактов по одному запросу?

1 ответ

Вы можете сделать это множеством способов, при условии, что я понимаю ваше видение:

Один из способов - просто предварительно сформировать запрос и просто выполнить:

query getFirstObjectInBackground:

https://parse.com/docs/ios/api/Classes/PFQuery.html

это сужает его до одного телефонного номера, который соответствует параметрам вашего запроса.

или же getObjectInBackground:

Другими словами, просто удалите findObjects и замените его getFirstObjectInBackground, и будет возвращен первый соответствующий результат

Другие вопросы по тегам