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Как хорошо.