#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]