Вы пытаетесь показать UIAlertView в методе, который вызывается из потока, отличного от основного потока? Например, если вы пытаетесь отобразить UIAlertView в асинхронном обратном вызове, он может работать в отдельном потоке.
Если это так, вам нужно переместить код, который показывает UIAlertView, в отдельный селектор и вызвать его в главном потоке, используя один из методов performSelectorOnMainThread:
.
Например, добавьте следующий метод в ваш класс:
-(void)showAlert {
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Your ISBN and/or Licence Key are incorrect" message:Nil delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil];
[alert show];
[alert release];
}
А затем измените последнее предложение else в текущем коде, чтобы оно использовало:
[self performSelectorOnMainThread:@selector(showAlert) withObject:nil waitUntilDone:NO];
См. Ссылку на класс NSObject для получения дополнительной информации о performSelectorOnMainThread:
методах.