Есть несколько потенциальных проблем с вашим кодом. Во-первых, когда вы создаете conn
с использованием connectionWithRequest:delegate:
, вы запускаете асинхронный запрос. Ответ будет получен в методе делегата (self
в вашем случае) connection:didReceiveResponse:
. Вы пытаетесь сделать запрос асинхронно? Из остальной части вашего кода, похоже, вы пытаетесь сделать синхронный запрос. Вот для чего sendSynchronousRequest:returningResponse:error:
. Если это то, что вы намереваетесь, то вам не нужен более ранний вызов для создания соединения.
Предполагая, что это так, вам нужно захватить и проверить значение, возвращаемое при вызове sendSynchronousRequest:returningResponse:error:
. Он вернет ноль, если соединение не удалось, что, как я подозреваю, происходит. Затем вы можете посмотреть на ошибку, чтобы выяснить, что происходит. Попробуйте что-то вроде:
NSData * result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if (result != nil) {
NSLog(@"statusCode = %d", [response statusCode]);
if ([response statusCode] == 404)
NSLog(@"MISSING");
else
NSLog(@"EXISTS");
} else {
NSLog(@"%@", error);
}