Возможно, вы не инициализировали элемент NSMutableString, поэтому вы, вероятно, отправляете сообщения объекту nil.
Это предположение, потому что вы не опубликовали важный код. Нам нужно увидеть
- где вы инициализируете три объекта
- где вы их назначаете, например возможно, вы назначаете ноль одному из них, не осознавая этого.
Отредактировано после последнего бита кода
В коде много ошибок, например, он пропускает много объектов, но я не вижу ничего, что могло бы вызвать вашу конкретную проблему, если только элементы ELEMENTNAME не появляются внутри элементов CONTAINER ваш XML.
Я не эксперт по коду пользовательского интерфейса на iPhone, но вы уверены, что applicationDidFinishLaunching запускается до viewDidLoad?
Кроме того, вы, кажется, никогда не назначаете свой анализатор свойству aXMLParser.
Некоторые другие вопросы
Ваш NSXMLParser протекает, потому что вы его не выпускаете.
Ваш собственный синтаксический анализатор также имеет утечку по той же причине (вы, вероятно, просто хотите использовать aXMLParser, а не локально определенный).
Ваш метод initXMPLarser должен выглядеть следующим образом:
- (XMLParser *) initXMLParser {
self = [super init];
if (self != nil)
{
appDelegate = (xAppDelegate *)[[UIApplication sharedApplication] delegate];
}
return self;
}
т.е. не выбрасывайте результат [super init] и убедитесь, что он не ноль.
массив выделяется каждый раз, когда вы нажимаете новый элемент. Каждый раз, когда вы нажимаете на новый элемент, вы выбрасываете и пропускаете предыдущий массив из последнего элемента.
словарь выделяется каждый раз, когда вы нажимаете элемент CONTAINER. Вы должны по крайней мере освободить старый, прежде чем выделять новый.
элемент также протекает.
Копия словаря, который вы поместили в массив, также утекает. Коллекции Objective-C сохраняют свои элементы.