требуется, чтобы запись в базу данных выполнялась методом обратного вызова NSNotification

#iphone #nsnotification

#iPhone #nsnotification

Вопрос:

Я вызываю веб-службу, передаю параметр, а затем регистрирую наблюдателя в классе viewcontroller (чтобы уведомить о завершении загрузки) :

 [self callWebservice:parameter1];
[[NSNotificationCenter defaultCenter] addObserver:self    selector:@selector(dataDownloadComplete:) name:OP_DataComplete object:nil];
  

а затем опубликовать уведомление в моем классе синтаксического анализа:

 -(void)connectionDidFinishLoading:(NSURLConnection *)connection method of the parser  class. [[NSNotificationCenter defaultCenter] postNotificationName:OP_DataComplete object:nil];
  

В методе обратного вызова dataDownloadComplete: я хотел бы снова вызвать одну и ту же веб-службу несколько раз.

 -(void)dataDownloadComplete
{
 if([anArray objectAtindex:N]<10)
  {
   [self callWebservice:parameterN];
   NSLog(@"This is getting called everytime (9 times)");
   [self writeintoDatabase];
   N  ;
  }
}
  

Но проблема в том, что я хочу записать в базу данных, какие данные я загружаю из сервиса. Запись в базу данных происходит для вызова ‘parameter1’ странным образом и продолжается для других, но не для parameter9 (который мне также нужен). Обратите внимание, что журнал вызывается все 9 раз. Код writeintoDatabase идеален. Пожалуйста, помогите. Заранее спасибо.

Комментарии:

1. Итак, вы говорите, что это работает 8 раз, а затем завершается неудачей на 9-м? Вызывается ли dataDownloadComplete правильное количество раз? Я бы поместил туда журнал, чтобы быть уверенным. Кроме того, я предполагаю, что parameterN и N как-то связаны в вашем реальном коде?

2. да, это вызывается 8 раз. Также обратите внимание, что я не вызываю его в первый раз (для вызова, который находится вне кода наблюдателя), пока он записывается. Позвольте мне отредактировать код, я использовал журналы. Журнал печатается 9 раз странным образом. ParameterN — это строка, а N — целое число для обеих переменных.

3. ParameterN — это строка? Тогда как вы сравниваете его с 10? В любом случае, похоже, вы получаете 9 уведомлений, которые вы ожидаете. Итак, это говорит мне о том, что проблема в -[xx writeintoDatabase:], вы так не думаете?

4. это не фактический код, под параметром я на самом деле подразумеваю [anArray objcetAtindex: N]