/ / NSXMLParser: как да чакам, докато зареждането приключи? - какао-допир, ios

NSXMLParser: как да чакам, докато зареждането приключи? - какао-докосване, ios

Да кажем, че използвам NSXMLParser, за да заредим ниво(съхранява се като XML документ, очевидно) в играта ми за iPhone. NSXMLParser работи чрез възлагане на делегат и изпращане на съобщения в ключови моменти. Как да се уверя, че цялото ми ниво е заредено, преди да направя нещо друго? Знам, че мога да направя основния си клас на делегат и да изпълня parserDidEndDocument, но това се чувства много закачливо. Моят основен клас не трябва да знае нищо за начина, по който е извършено парсирането! От друга страна, ако направя отделен клас / делегат за синтактичен анализ на моето ниво, основният ми клас няма начин да разбере кога е завършен анализът, освен ако не запитва непрекъснато класа на разбор или класът на парсването му изпраща съобщение.В който и да е посока, основният клас ще бъде свързан с реализацията на класа за анализ.

Мога ли да скрия целия този бизнес от събитиетоОсновният клас и просто да накара парсера да върне обекта на нивото, когато той е "направен?" ) В момента използвам външен DOM парсер, но съм любопитен как ще стане това с NSXMLParser.

Съжалявам, ако това е глупав въпрос - аз съм малко нов за това!

РЕДАКТИРАНЕ: Според референтния клас на NSXMLParser, методът на разбор, който "стартира операцията за парсиране на събития", връща ДА, ако е успешно и НЕ ако има грешка. решаване на проблема ми, тъй като предполагах, че разборът продължава дори и след като методът на синтактичния анализ се върне.

Отговори:

1 за отговор № 1

NSXMLParser блокира, докато не се направи анализ. Вие не трябва да правите нищо, защото нивото ще бъде заредено след връщането на метода за анализ.