2016-01-30 5 views
1

У меня есть 2 массива, которые получают информацию из базы данных. Один из них, называемый json, содержит сообщения с идентификатором пользователя, а другой, называемый userJson, содержит всех пользователей с их идентификаторами. Если идентификатор пользователя из json равен идентификатору пользователя из userJson, я бы хотел заполнить третий массив этим именем пользователя. Я использую следующий код:Добавление объектов в массив, возвращающий массив null

NSDictionary *info = [json objectAtIndex:indexPath.row]; 
NSDictionary *userInfo = [userArray objectAtIndex:0]; 
for (int i=0; i<[json count]; i++) { 
    if ([[userInfo objectForKey:@"user_id"] isEqualToString:[info objectForKey:@"user_id"]]) { 
     [usernameArray addObject:[userInfo objectForKey:@"username"]]; 
    } 
} 

NSLog(@"%@", usernameArray); 

usernameArray - это 3-й массив, который должен содержать имена пользователей. Когда я печатаю его, он печатает нулевое количество раз.

+0

Мой первый вопрос, у вас есть эта строка кода? usernameArray = [[NSMutableArray alloc] init]; –

+0

Нет, я этого не делаю. @Ryan Tobin – John55

ответ

0

Вам нужно сначала добавить это:

usernameArray = [[NSMutableArray alloc]init]; 

Затем измените петлю на следующее:

NSDictionary *info = [json objectAtIndex:indexPath.row]; 
NSDictionary *userInfo; 
for (int i=0; i<[userArray count]; i++) { 
    userInfo = [userArray objectAtIndex:i]; 
    if ([[userInfo objectForKey:@"user_id"] isEqualToString:[info objectForKey:@"user_id"]]) { 
     [usernameArray addObject:[userInfo objectForKey:@"username"]]; 
    } 
} 
+0

Да, это сработало. Спасибо! – John55