Я новичок в C, Obj-C и iPhone, и я пытаюсь справиться с большим количеством используемой терминологии. Надеюсь, что один из вас может помочь с проблемой I с которыми мы сталкиваемся в течение нескольких дней.Утечка памяти на iPhone :(
Мой код ниже - это метод, который вызывает нить, содержащую поле поиска и таблицу. Таблица заполняется поиском массива, созданного для «theList» ниже. Используя «Инструменты», я получаю утечку на линии: NSDictionary * theItem = [Словарь NSDictionaryWithObjectsAndKeys: clientName, @ "Name", clientId, @ "Id", nil];, но я не могу понять, почему: (
Я знаю, что это, вероятно, сложный вопрос, но если есть любой может помочь!
- (void)editClient:(id)sender {
if (pickList == nil) {
pickList = [[PickFromListViewController alloc] initWithNibName:@"PickList" bundle:nil];
}
TimeLogAppDelegate *appDelegate = (TimeLogAppDelegate *)[[UIApplication sharedApplication] delegate];
NSMutableArray *theList = [[NSMutableArray alloc] init];
int i;
for (i=0;i < [appDelegate.clients count];i++) {
Client *thisClient = [appDelegate.clients objectAtIndex:i];
NSString *clientName = [[NSString alloc] initWithString: thisClient.clientsName];
NSNumber *clientId = [[NSNumber alloc] init];
clientId = [NSNumber numberWithInt:thisClient.clientsId];
NSDictionary *theItem = [NSDictionary dictionaryWithObjectsAndKeys:clientName,@"Name",clientId,@"Id",nil];
[theList addObject:theItem];
theItem = nil;
[clientName release];
[clientId release];
}
[pickList createSearchItems:theList :NSLocalizedString(@"Client",nil)];
[theList release];
appDelegate.returningID = [NSNumber numberWithInt: projectsClientsId];
[self.navigationController pushViewController:pickList animated:YES];
}
Заранее благодарен!
Спасибо за ваше время! Я действительно имел это, как вы предлагаете, но изменил этот код, думая, что он может решить проблему. Теперь он вернулся, как вы предполагали, но с теми же результатами утечки. Могу ли я считать, что проблема лежит в названном nib? – Chris
Какова ошибка, которую вы получаете? – stefanB
Существует несколько ... NSCFDictionary, NSCFArray & GeneralBlock-16 и ссылка на эту одну строку. Как вы видите, я нажимаю новый ViewController в конце метода - там я создаю два MutableArrays с помощью MutableCopy для выполнения поиска TableView - я не выполняю глубокую копию, поэтому я предполагаю, что MutableCopies все еще связаны с те же пары объектов ?. Эти два массива, очевидно, выпущены в пределах ViewController после завершения. Еще раз спасибо за ваше время и помощь. – Chris