Можем ли мы добавить две разные операции NSO в didFinishLaunchingWithOptions - PullRequest
1 голос
/ 07 марта 2011

Я пробовал это в течение последних двух дней и застрял в одной точке. Я действительно был бы признателен за любую помощь в этом. Можно ли добавить две разные операции NSO при загрузке приложений в соответствии с didFinishLaunchingWithOptions. Как у меня есть два разных URL-адреса XML, который анализирует данные и использует NSOperation для добавления данных в БД. В настоящее время, когда я анализирую два разных URL-адреса и использую NSOperations, первое NSOperationQueue содержит элементы из первого URL-адреса, что означает, что он не освобождается после его завершения.

Может ли кто-нибудь помочь мне в этом?

Сагос


static NSString *string1 = @"abc.com/abc1.xml";; 
NSURLRequest *URL1 =[NSURLRequest requestWithURL:[NSURL  URLWithString:string1]]; 
self.URL1Connection =[[[NSURLConnection alloc] initWithRequest:URL1 delegate:self] autorelease]; 
static NSString *string2 = @"abc.com/abc2.xml";; 
NSURLRequest *URL2 =[NSURLRequest requestWithURL:[NSURL URLWithString:string2]]; 
self.URL2Connection =[[[NSURLConnection alloc] initWithRequest:URL2 delegate:self] autorelease];

Ответы [ 2 ]

0 голосов
/ 08 марта 2011

Ладно, чтобы вы больше не отвечали на вопросы и отвечали красным, я напишу общий рабочий процесс.

Вот как я бы решил эту проблему.Я хотел бы создать NSOperation, который делает загрузку и анализ.И я бы проигнорировал «NSOperation + Networking = Вы делаете это неправильно!» - Сэйерс сейчас.

Создайте NSOperation с URL-адресом и делегатом (это может быть viewcontroller, который будет показывать данные), выполните синхронную выборку данных (то есть NSData *data = [NSData dataWithContentsOfURL:url];). Затем проанализируйте данные, когда они там есть.И когда это будет сделано, вы сообщаете делегату, что данные готовы.

Это устранит немного более сложную задачу, заключающуюся в различении произвольного числа загрузок XML.Потому что (я думаю) это была твоя проблема.Вы добавили две NSOperations в очередь, когда одна из них была закончена.Таким образом, другой был запущен с неполными данными.И если бы мне пришлось сделать предположение, я бы сказал, что вы смешали загруженные данные обоих.

Добавьте NSOperationQueue к вашему appDelegate и добавьте NSOperations в эту очередь.


В качестве дополнительной информации, если у вас есть комментарии или дополнения к вашему вопросу, вы должны поместить их в вопрос.Ответы предназначены только для ответов на вопрос.Если вы хотите публиковать более одного раза, и вам нравится диалог с другими разработчиками, вам следует заглянуть на форум.Например, , это или , это , но их гораздо больше.Но они обычно отстой, и никто (преувеличение) не дает там хороших ответов, потому что никто не хочет читать 50 постов на 3 страницах, чтобы получить картину.Вот почему мы стараемся поставить все, что имеет отношение к вопросу.Это намного проще для людей, которые хотят ответить на ваш вопрос.

Так что в следующий раз, если кто-то запросит дополнительную информацию или код, отредактируйте вопрос и добавьте туда информацию.Вы никогда не должны оставлять ответ, если не отвечаете на вопрос.

0 голосов
/ 07 марта 2011

@ fluchtpunkt:

У меня есть два разных URL-адреса XML, в каждом из которых есть данные, которые я заполняю отдельно.Обе структуры XML-файлов различны, и, следовательно, у меня есть две разные операции NSO, чтобы проанализировать файл и добавить их в свою базу данных.Я не уверен, как добавить NSOperation в мой viewcontroller, который, если возможно, будет очень полезен, так как у меня есть два разных View Controller для обоих URL.

...