Во второй половине дня overflowers,Создание содержимого массива с использованием словарей NSXMLParsing в прошивкой
В моем коде я пытаюсь разобрать и ответ SOAP, который находится в формате NSData. С этими данными, используя NSXMLParse, я пытаюсь создать массив словарей. Проблема в том, что в любое время, когда я добавляю свой новый словарь в массив, он заменяет содержимое старого словарного ресурса добавленным в настоящее время. Например, в конце синтаксиса у меня есть 7 словарей с одним и тем же содержимым в моем массиве. Вот код, чтобы показать, что я сделал;
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"Received the SOAP data.");
if (!itemArray) {
itemArray = [[NSMutableArray alloc] init];
}
else {
itemArray = nil;
itemArray = [[NSMutableArray alloc] init];
}
if (!itemDictionary) {
itemDictionary = [[NSMutableDictionary alloc] init];
}
else {
itemDictionary = nil;
itemDictionary = [[NSMutableDictionary alloc] init];
}
parser = [[NSXMLParser alloc] initWithData:webData];
[parser setDelegate:self];
[parser parse];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
NSLog(@"Started Element %@", elementName);
element = [NSMutableString string];
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if(element == nil) {
element = [[NSMutableString alloc] init];
}
[element appendString:string];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
NSLog(@"Found an element named: %@ with a value of: %@", elementName, element);
if (![elementName isEqualToString:@"item"]) {
[itemDictionary setValue:element forKey:elementName];
}
else if ([elementName isEqualToString:@"item"]) {
if (itemDictionary) {
[itemArray addObject:itemDictionary];
[itemDictionary removeAllObjects];
}
}
}
Заранее спасибо. Привет
Это очень помогло, спасибо – Engnyl