2011-01-28 9 views
0

내가 할당하면질문에 대한 메모리 누수

self.connection = [있는 NSURLConnection connectionWithRequest : 요청 대리인 : 자기] 같은;

이제 다음을 수행하십시오.

self.connection = nil;

메모리 누수가 발생합니까? 아니오라면, 그 이유는 무엇입니까?

+0

아니 왜 하나가있을 것입니다 생각하십니까 세부 사항을 찾을 수 있습니까? –

답변

3

이것은 메모리 누출이 아닙니다. 객관적인 c 속성이 구현되는 방법 때문입니다. 나는 당신이 당신의 재산 신고서에 retain을 사용하고 있다고 가정하고 있습니다. 이제 self.connection 할 때 다음 메서드가 호출됩니다. 당신의 연결이 먼저 해제 된 후 nil에 대한 retain 연산이 수행되어 그냥 nil을 리턴합니다. 따라서 메모리 누출은 발생하지 않습니다.

-(void)setConnection:(NSURLConnection *)newConnection { 
    if (connection != newConnection) { 
     [connection release]; 
     connection = [newConnection retain]; 
    } 
} 

현재 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProperties.html

+0

물건 정리에 감사드립니다. – Ideveloper