2012-05-17 3 views
0

Я разрабатываю одно приложение. В этом я выполняю разбор xml и получаю 400 вопросов. Для получения этих вопросов я создал один класс с такими атрибутами вопроса. Когда вопрос тег уволен, я создал один объект для этого класса и сохранил эту информацию атрибутов, и когда didendelement, выпущенный для этого класса, я добавил этот объект класса в один массив. Подобно этому я создаю объект для каждого вопроса. Когда мне это нравится, много памяти, и процесс также slow.If я запустить этот на фоне будет принимать тот же time.so скажите, пожалуйста, как это сделать один с меньшим количеством кода memory.My синтаксического анализа, какКак занимать меньше памяти во время разбора xml

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    if([elementName isEqualToString:@"question"]) 
    { 
     questions=[[Questions alloc]init]; 
     questions.content=[attributeDict valueForKey:@"content"]; 
     questions.id=[attributeDict valueForKey:@"id"]; 
     questions.answer=[attributeDict valueForKey:@"answers"]; 
     questions.type=[attributeDict valueForKey:@"type"]; 
     questions.markertext=[attributeDict valueForKey:@"marker_text"]; 
     questions.markertop=[attributeDict valueForKey:@"marker_top"]; 
     questions.markerleft=[attributeDict valueForKey:@"marker_left"]; 
    } 
} 


- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
    [qshns addObject:questions]; 
} 

Здесь qshns это o ne.

ответ

0

Существует только один способ занять меньше памяти, а всего лишь один раз ударить XML-класс и сохранить его в массиве или базе данных в любом одноэлементном классе. Затем используйте его везде, где хотите. Никогда не ударяйте XML-класс снова и снова, он будет занимать вашу большую память.

+0

Пожалуйста, объясните еще раз. Я не понял. – user1400581

+0

просто ударил класс xml только один раз в appdelegate и сохранил данные в массиве или в базе данных. и использовать этот массив в любом классе. –

+0

Но у меня разные файлы xml для разных subjects.based при выборе темы на предыдущей странице Мне нужно разобрать XML-файл для разных вопросов. – user1400581

0

Скопируйте XML-файл в хранилище данных Core Data. После этого вы получите сверхбыстрый доступ, практически не используя память.

+0

Каждый раз, когда у меня есть другой xml-файл. Все эти файлы уже хранятся в памяти устройства. – user1400581

Смежные вопросы