[UIImage imageWithData:]
은 자동 릴리스 된 객체를 반환하며 사용자가 다시 해제하면 안됩니다. 따라서이 코드는 메모리 누수가 아니라 반대쪽에 두 배의 여유 공간을 포함합니다 (최악의 경우).
인스 트루먼 트가 때때로 가양 성을 생성하고/또는 Foundation 자체에서 메모리 누수를보고합니다 (예 : 실수도 함 :-).
ALLOC에 가장 빠른 방법은/객체를 해제하는 것은 imageWithData 같은 :) 대신
NSData* data = [[NSData alloc] initWithContentsOfURL:url]];
UIImage* img = [[UIImage alloc] initWithData:data];
[data release];
// use your image
[img release];
이 할당하고 바로 개체를 해제 할 때까지 기다릴 것 같은 뭔가 (편의 초기화를 방지하는 것입니다 자동 해제 풀이 정리됩니다.
그러나 메모리 누수가 아직 해제하지 메모리가 일반적이지만, 그래서 오토 릴리즈 풀에서 할당 해제 될 객체가 아닌, 즉 손실되고 더 이상을 해제 할 수없는, 너무 유의하시기 바랍니다 메모리 누수를 고려했다. 당신이 프로그래머는 "초기화", "복사"또는에서 "유지"가, 당신이 그것을 해제 할 객체를 생성하는 경우
"이중 릴리스"의 결과는 무엇입니까? – dubbeat
일반적으로 프로그램을 중단시키는 EXC_BAD_ACCESS (일반적으로 segfault라고 함). 이미 할당이 해제 된 객체에 대한 참조가 있고 그 객체에 액세스하려는 경우에도 이러한 일이 발생합니다. – Alfonso