РЕДАКТИРОВАТЬ: Вы выпускаете NSData, который не ваш.
Вам не нужна эта строка:
[arrayFromData release];
из-за этой ошибки:
Вы положили:
NSArray *arrayFromData = [[NSArray alloc]init];
arrayFromData = [string yajl_JSON];
когда все, что вам нужно, это:
NSArray *arrayFromData = [string yajl_JSON]; // This doesn't need releasing
Вы отправляете запрос, который уже был автоматически выпущен: (
// Create an autoreleased request object
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:forURL];
...
[request release]; // fail here - this line is not needed
Просто к вашему сведению:
Это ненужный код:
NSString *stringFromRequest = [[NSString alloc]init];
stringFromRequest = [request responseString];
Вы создаете строковый объект, а затем получаете другой. Первый, который вы делаете, будет пропущен. Этот код будет делать то, что вы хотите:
NSString *stringFromRequest = [request responseString]; // This doesn't need releasing :)
Однако это причина утечки, а не аварии, о которой вы сообщаете.
(У вас есть этот шаблон в других местах вашего кода, не только здесь.)