Xcode 4 предупреждение "результат выражения не используется" для NSURLConnection
Я просто пытаюсь сделать свою обычную передачу данных. Я определяю свой NSMutableURLRequest, а затем вызываю
[[NSURLConnection alloc] initWithRequest:request delegate:self];
это было нормально с Xcode 3, но Xcode 4 предупреждает меня о "результат выражения не используется" в этой строке. Запрос работает, но я хотел бы найти способ, чтобы избавиться от предупреждения.
Я полагаю, что я мог бы хранить соединение в переменной, но мне это не нужно, и я не вижу смысла устанавливать его в nil
следующий строка (хотя это уберет предупреждение)
обратите внимание: я не уверен на 100%, если это XCode 4 или дуга факта включена.
большое спасибо за вашу помощь!
3 ответа:
когда функция возвращает результат, который вам не нужен, вы можете привести его к void, чтобы устранить предупреждение компилятора:
(void) [[NSURLConnection alloc] initWithRequest:request delegate:self];
Я еще не использовал ARC, поэтому я не могу сказать, является ли это хорошей идеей, прежде чем ARC вам нужно будет сохранить этот результат указателя где-то, чтобы вы могли его освободить.
ответ progrmr правильный, но вот еще более чистый способ сделать это:
[NSURLConnection connectionWithRequest:request delegate:self];
это не вызывает предупреждения, даже если вы не приведете результат к void.
кто-то должен отвечать за это
NSURLConnection
. Это не нужно для хранения соединения, но это лучше кодирование, если вы делаете. Проблема в том, что после того, как вы создалиNSURLConnection
ни у кого нет указателя на этот созданный экземпляр, который не должен иметь место.предположим следующий пример:
- экземпляр
ClassA
создает instaneNSURLConnection
- экземпляр
ClassA
душевное освобожден и deallocedNSURLConnection
все еще жив и уволит делегата в ваш освобожденный экземпляр.чтобы решить эту проблему вы должны хранить экземпляр
NSURLConnection
и должен освободить это соединение, если ваш экземплярClassA
освобождается, что приводит к освобождению экземпляраNSURLConnection
Как хорошо.