NSXMLParser в потоках переключения подкласса NSObject

Я только что создал подкласс NSObject, который инициализирует NSXMLParser, анализирует XML, а затем вызывает метод делегата, который я передаю подклассу:

Инициализатор:

- (id)initWithData:(NSData *)data interestingKeys:(NSSet *)interestingKeys_
      itemElm:(NSString *)itemElement_ delegate:(id <XDelegate>) delegate_ 
{
    if((self = [super init])) {
        self.delegate = delegate_;

        //create parser and start parsing
        NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
        parser.delegate = self;
        [parser parse];
        [parser release];
    }   
    return self;
}

Вызов метода в делегате:

- (void) parserDidEndDocument:(NSXMLParser *)parser 
{
    //calls parserDidFinishParsingData: in delegate class
    [self.delegate parserDidFinishParsingData:self.arrayOfDictionaries];
}

Затем я могу взять проанализированные данные (которые хранятся в self.arrayOfDictionaries) и использовать их в классе делегата.

Проблема в том, что я получаю следующие сообщения журнала:

[Switching to thread 11523]
[Switching to thread 11523]

Я создаю себе проблемы, помещая действие NSXMLParser в подкласс NSObject?

DDXMLParser.h: https://gist.github.com/762235< br> DDXMLParser.m: https://gist.github.com/762236
Случай использования: https://gist.github.com/762237

Ваше здоровье


person dianovich    schedule 02.01.2011    source источник


Ответы (1)


Откуда еще вы могли бы его использовать? Помимо функции C, корневого класса или подкласса другого корневого класса.

Нет ничего плохого в создании и использовании объектов Cocoa из ваших собственных пользовательских объектов Cocoa.

Сообщения журнала читаются так, как будто они пришли из отладчика, и не имеют ничего общего с использованием вами NSXMLParser. Отладчик прервал ваше приложение? Если да, загляните в него и посмотрите, что там написано.

person Peter Hosey    schedule 02.01.2011
comment
Я, вероятно, не знал / не выразил свои опасения должным образом. Мое приложение часто падало, поэтому я собираюсь создать подкласс NSOperation, который больше подходит для выполнения задач синтаксического анализа. Приложение Lazy Table Images содержит пример класса операции синтаксического анализа. - person dianovich; 03.01.2011