Я новичок в Objective C и могу действительно использовать некоторую помощь.
Я создал класс с именем Agent.Класс Agent содержит следующий метод:
+ (Agent *)agentWithName:(NSString*)theName {
Agent *agent = [[[Agent alloc] init] autorelease];
agent.agentName = theName;
return agent;
}
Затем из моего корневого контроллера представления я хочу пройтись по словарю имен, создавая объект Agent для каждого имени и добавляя этот объект Agent в NSMutableArray:
for (id object in dictArray) {
NSString *agentName = [object objectForKey:@"name"];
[self.myAgents addObject:[Agent agentWithName:agentName]];
}
Проблема в том, что как только выполнение прошло [self.myAgents addObject:[Agent agentWithName:agentName]];
, все объекты агента внутри NSMutableArray self.myAgents
выводятся отладчиком как «вне области».Это вызывает EXC_BAD_ACCESS позже в моем коде, когда я пытаюсь получить доступ к объектам в этом массиве.Объекты добавляются в массив (по крайней мере, они отображаются в отладчике XCode), они просто находятся вне области видимости, но выходят за пределы области видимости даже до выхода из цикла for.Может кто-нибудь объяснить, пожалуйста, что я делаю не так?Я почти уверен, что это связано с моим отсутствием понимания для управления памятью.Спасибо, что посмотрели.