Запрос нескольких значений через анализ
Поэтому мое приложение загружается в контакты пользователя и сохраняет его телефонные номера, но я хочу запросить эти телефонные номера по сравнению с теми, которые хранятся в 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, и будет возвращен первый соответствующий результат