2010-01-12 3 views
0
- (void)parserDidStartDocument:(NSXMLParser *)parser 
{ 
    nestedChannels = [ [ NSMutableArray alloc ] init ]; 
    .... 
} 

- (void)parser:(NSXMLParser *)parser didStartElement.... 
{ 
    Channel *channel = [ [ Channel alloc ] init ]; 
    [ nestedChannels addObject:channel ]; 
    .... 
} 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string.... 
{ 
    Channel *channel = [ nestedChannels lastObject ]; 
    channel.thumbnail = string; 
    .... 
} 

@interface Channel : NSObject { 

NSMutableString *thumbnail; 

} 


@property (nonatomic, retain) NSMutableString *thumbnail; 

Ошибка: * Нагрузочный приложение из-за неперехваченное исключения «NSInvalidArgumentException», причина: «* - [NSCFString эскизов]: непризнанные селектор посланного к экземпляру 0x381c350»Разбор XML не работает, почему?

Это как не может распознать тип объекта. Могу ли я что-то отсутствует

** nestedChannels является NSMutableArray *

+0

- (недействительными) parserDidStartDocument: (NSXMLParser *) анализатор {\t \t nestedChannels = [[NSMutableArray Alloc] инициализации]; –

ответ

0

Похоже это вызывает проблему.

channel.thumbnail = string; 

Какой тип миниатюр в канале и какие существуют мутаторы? Мне кажется, что он пытается установить строку в миниатюру, но нет сеттера, который принимает строку на миниатюре. Миниатюра NSString?

+0

Я добавил класс Channel, извините –

+0

, вы пытаетесь назначить NSString для NSMutableString, обычно это работает с некоторыми предупреждениями, но, возможно, есть проблема с KVC, разница между установкой изменяемой и неизменяемой строки в KVC? Вы пытались сделать изменяемую копию и назначить ее миниатюре? – stefanB

0

Неясно, что вы просите; эти разные методы? Форматирование кода немного странно. Единственное, что следует отметить, что, если второй фрагмент действительно метод (хотя нет скобок), то необходимо добавить данные, передаваемые в, так как это не может быть полный элемент:

if (channel.name == nil) channel.name = [NSMutableString string]; 
[channel.name appendString: string]; 
Смежные вопросы