Вы переписываете один и тот же itemPreDict
снова и снова. Для хранения различной информации вам нужно создать 10 разных словарей. Попробуйте
for (CXMLElement *node in nodes) {
NSMutableDictionary* itemPreDict = [[NSMutableDictionary alloc] init];
// ^----------
[itemPreDict setObject:[[node attributeForName:@"name"] stringValue] forKey:@"name"];
[itemPreDict setObject:[[node attributeForName:@"gender"] stringValue] forKey:@"gender"];
[itemPreDict setObject:[[node attributeForName:@"dob"] stringValue] forKey:@"dob"];
[itemDict setObject:itemPreDict forKey:[[node attributeForName:@"name"] stringValue]];
// v----------
[itemPreDict release];
}
вместо.
(Поскольку вам все равно нужно создать словарь, используйте -initWithObjectsAndKeys:
вместо трехкратного вызова -setObject:
. Это также позволяет itemPreDict
быть NSDictionary вместо NSMutableDictionary.)