#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 часов ночи, пытаясь разобраться в этом материале. я знал, что это будет что-то простое. еще раз спасибо