2015-05-21 3 views
0

Как найти количество объектов, найденных в запросе? Следующий код всегда печатает «0», но в базе данных есть пользователь с таким именем пользователя.Анализ: Найти количество объектов, найденных в запросе

PFQuery *query = [PFQuery queryWithClassName:@"User"]; 
    [query whereKey:@"username" equalTo:self.usernameField.text]; 
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
     if ([objects count] == 0) { 
      NSLog(@"error %lu", (unsigned long)[objects count]); 
     } 
     else { 
      NSLog(@"no error"); 
     } 
    }]; 

Что я делаю неправильно?

+0

Are вы уверены, что его регистр нечувствителен? – abhishekkharwar

+0

Капитализация для имени и ключа класса верна. – smecperson

+0

попытайтесь распечатать объекты и посмотреть, что они печатают, если условие else else – abhishekkharwar

ответ

0

Попробуйте это, потому что пользователь синтаксического анализа по умолчанию объект начинается с «_User»

PFQuery *query = [PFQuery queryWithClassName:@"_User"]; 

[query whereKey:@"username" equalTo:self.usernameField.text]; 

[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 

    if ([objects count] == 0) { 
     NSLog(@"error %lu", (unsigned long)[objects count]); 
    } 
    else { 
     NSLog(@"no error"); 
    } 
}]; 
+0

Используйте правильный метод, а не имя частного класса – Wain

+0

Это неправильный ответ –

+0

Почему? может быть множество методов для выполнения задачи, синтаксический анализ делает то же самое на обратной стороне ... –

1

Выполнение запроса на _User класса должно быть сделано с помощью +query метод PFUser класса

PFQuery *userQuery = [PFUser query]; //Note the difference here. 
[userQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
    if ([objects count] == 0) { 
     NSLog(@"error %lu", (unsigned long)[objects count]); 
    } 
    else { 
     NSLog(@"no error"); 
    } 
}]; 
Смежные вопросы