добавить все объекты с одинаковым ключом из NSDictionary в NSArray

#iphone #nsarray #nsdictionary

#iPhone #nsarray #nsdictionary

Вопрос:

 NSArray *myArray=[[NSUserDefaults standardUserDefaults] objectForKey:@"userInfo"];

    for(NSDictionary *d in myArray){

        newInfo=[d valueForKey:@"screen_name"];

        NSLog(@"%@", newInfo);      

        listOfTerms=[[NSMutableArray alloc]initWithObjects:newInfo, nil];


        NSLog(@"here   %@", listOfTerms);           
    }
  

выше вы можете видеть код, который я использую, но в listOfTerms всегда есть только одна запись, которая, похоже, является последним объектом в словаре. я пытался разобраться в этом уже несколько часов. будем признательны за любую помощь.

Ответ №1:

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

 NSArray *myArray=[[NSUserDefaults standardUserDefaults] objectForKey:@"userInfo"];
NSArray *listOfTerms = [myArray valueForKey:@"screen_name"];
  

Знайте фреймворк, используйте его в своих интересах.

Ответ №2:

Вы перезаписываете listOfTerms на каждой итерации, попробуйте это вместо:

 listOfTerms = [[NSMutableArray alloc] init];

NSArray *myArray=[[NSUserDefaults standardUserDefaults] objectForKey:@"userInfo"];

for(NSDictionary *d in myArray){

    newInfo=[d valueForKey:@"screen_name"];

    NSLog(@"%@", newInfo);      

    [listOfTerms addObject:newInfo];

    NSLog(@"here   %@", listOfTerms);           
}
  

Комментарии:

1. большое тебе спасибо @Nick, ты перестал кружить мне голову. я не спал до 3 часов ночи, пытаясь разобраться в этом материале. я знал, что это будет что-то простое. еще раз спасибо