Я потратил много времени, пробуя сотни вещей и ища в интернете свою проблему, но ничего не нашел, поэтому надеюсь, что вы, ребята, сможете мне помочь:).
Итак, у меня есть NSMutableDictionary
, который я заполняю NSArrays
при разборе XML-документа.Моя проблема в том, что я хочу очистить его перед тем, как выпустить, потому что он, кажется, вызывает утечки!
На мой взгляд, лучшее решение: [myDict removeObjectsForKeys : [myDict allKeys]]
, но приложение вылетает, и я получаю следующее сообщение вконсоль:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (0) beyond bounds (0)'
Я действительно не могу понять, почему ... какие-либо идеи?
РЕДАКТИРОВАТЬ
Важный момент, который я забыл (я думаю,...), то, что словарь, который я вызываю, находится в моем приложении Delegate, с appDelegate = [[UIApplication sharedApplication] delegate];
.(appDelegate определен в моем .h с типом класса myAppDelegate).
Затем я инициализирую его следующим образом: appDelegate.myDict = [[NSMutableDictionary alloc] init];
Это неправильно?
Что тогда странно,когда я делаю:
[appDelegate.myDict release];
NSLog( @"%@", appDelegate.myDict);
я получаю заполненный словарь ...
EDIT 2
Я только что понял, что все мои переменные appDelegate не освобождаются, когдаЯ звоню [appDelegate.myVariable release]
... Wtf, я делаю неправильно?Это сводит меня с ума> <</p>