Итак, я пытаюсь сохранить массивы в NSDictionary на лету.Позвольте мне показать вам код и объяснить, что происходит.
for (int x= 0; x <[appDelegate.people count]; x++) {
Person *aPerson = [[Person alloc] init];
aPerson = [appDelegate.people objectAtIndex:x];
if ([appDelegate.groupedBusiness objectForKey:aPerson.business_name] == nil) {
NSMutableArray *newBusiness = [[NSMutableArray alloc] init];
//if the business does not exist in the dict, add the person to the business and add it to dict.
[newBusiness addObject:aPerson];
[appDelegate.groupedBusiness setObject:newBusiness forKey:aPerson.business_name];
[newBusiness release];
newBusiness = nil;
//NSLog(@"%@", appDelegate.groupedBusiness);
} else {
NSMutableArray *existingBusiness= [appDelegate.groupedBusiness objectForKey:aPerson.business_name];
[existingBusiness addObject:aPerson];
//THIS IS THE LINE I AM NOT SURE ABOUT!!!
[appDelegate.groupedBusiness setObject:existingBusiness forKey:aPerson.business_name];
[existingBusiness release];
existingBusiness = nil;
//NSLog(@"%@", appDelegate.groupedBusiness);
}
}
Хорошо, поэтому appDelegate имеет массив «Люди», который имеет целый ряд атрибутов о человеке.Я пытаюсь настроить словарь, чтобы отсортировать их по названиям компаний.Я делаю это, создавая массив и сохраняя его в словаре с ключом business_name.На каждой итерации цикла я проверяю, существует ли ключ, если он существует, извлекает существующий массив, добавляет проверяемого человека и сохраняет его в словаре.Однако этого, похоже, не происходит.Есть ли какое-то экзотическое поведение в классе NSDictionary, которое могло бы предотвратить это?Я залил веб-страницу класса и ничего не могу найти.Извините, если это вопрос нуби, я все еще пытаюсь понять классы target-c.Спасибо!