iPhone - безопасен ли ASIHTTPRequest? - PullRequest
2 голосов
/ 29 апреля 2011

У меня есть этот метод:

-(void)updateSomething
{
   NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
   NSURL *url = [NSURL URLWithString:@"some url"];

   ASIFormDataRequest *httpRequest = [ASIFormDataRequest requestWithURL:url];
   [httpRequest startSynchronous];
   //some other stuff
   [pool drain];
}

Я вызываю этот метод на applicationDidFinishLaunching Если я вызываю его в главном потоке, он отлично работает

[self getMyItems];

Но когда я вызываю егов отдельном потоке я получаю «Программа получила сигнал:« EXC_BAD_ACCESS »

[self performSelectorInBackground:@selector(getMyItems) withObject:nil];

Есть идеи, как решить эту проблему?

1 Ответ

3 голосов
/ 29 апреля 2011

Зачем выполнять отдельные запросы в отдельных потоках, когда вы можете использовать ASINetworkQueue?

ASINetworkQueue *aQueue = [[ASINetworkQueue alloc] init];
[aQueue addOperation:requestToAdd];
[aQueue setDelegate:self];
[aQueue setRequestDidFinishSelector:@selector(requestFinished:)];
[aQueue setRequestDidFailSelector:@selector(requestFailed:)];
[aQueue setQueueDidFinishSelector:@selector(queueFinished:)];
[aQueue go];

ASINetworkQueue является подклассом NSOperationQueue и ASI * Запросы выполняются в отдельных потоках.

...