так что здесь я застрял в самой простой части (или я так думал) моего небольшого проекта на это утро.Цель состояла в том, чтобы создать простой синтаксический анализатор XML, который берет каждый элемент, с которым они сталкиваются, и добавляет его в словарь, в котором в конечном итоге будут храниться все пары ключ / значение в XML.*
В итоге получился бы словарь с двумя парами ключ / значение:
{
1stTag:text;
2ndTag:some more text;
}
Принятие NSXMLParser Framework Я думал, что просто сохраню каждый встреченный элемент и текст в переменных self.elementInProgress и self.textInProgress (обе строки NSStrings).Когда Элемент закончится, я добавлю пару в словарь.
Итак, вот файл .h:
@interface MSParser : NSObject <NSXMLParserDelegate>
{
NSString *elementInProgress;
NSString *textInProgress;
NSMutableDictionary *parsedXMLDict;
}
@property (nonatomic, retain) NSString *textInProgress;
@property (nonatomic, retain) NSString *elementInProgress;
@property (nonatomic, retain) NSMutableDictionary *parsedXMLDict;
И соответствующая функция в файле реализации:
@ synthesize textInProgress, elementInProgress, parsedXMLDict;
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
[self.parsedXMLDict setValue:self.textInProgress forKey:self.elementInProgress];
NSLog(@"%@",[self.parsedXMLDict valueForKey:self.elementInProgress]);
}
Теперь я в замешательстве, что мой NSLog возвращает Null!И я подумал, что это не просто.Что мне не хватает?И self.textInProgress, и self.elementInProgress заполнены правильно в соответствии с отладчиком.Я могу проследить это до этой строки, где я вызываю setValue ForKey, что опять-таки соответствует документации и сработало для меня уже не раз.Словарь просто не принимает значения.Согласно документации, было бы забавно, если бы переданное значение setValue было равно нулю, а здесь нет ... Любые идеи?
Все выглядит хорошо, не ошибки или предупреждения компилятора, просто возвращается Null.В тупик, как я уже сказал ...