2016-11-17 1 views
-2

간단한 Obj-c 앱을 쓰고 있습니다. 지금까지 나는 결코 alloc에 아무것도 없었고 ARC가 메모리 관리를 담당한다는 것을 당연시했습니다.NSImage를 dealloc해야합니까?

하지만 지금은 전화를해야 :

NSImage *myImage = [[NSImage alloc] initByReferencingFile: pathToMyImg]; 

을 나는 myImage해야 내가 수동으로 dealloc 그것으로 끝났어요 후?

+1

ARC를 사용하는 경우 더 이상 사용하지 않을 때 자동으로 할당이 해제됩니다 – Alex

답변

1

당신이 목표 - C ARC 사용하고 (기본이고, 당신은 당신이 어쨌든했으며) 경우, factory method 스타일 인스턴스 및 [[NSImage alloc] init] 스타일 인스턴스 사이에 필요한 메모리 관리에는 차이가 없다. 마지막으로 강력한 참조가 범위를 벗어나면 (또는 참조의 마지막 강력한 참조가 범위를 벗어나는 경우) 생성 한 모든 항목이 자동으로 해제됩니다.

ARC를 사용하지 않았다면 완료했을 때 수동으로 [myImage release]을 수행해야하지만 이전 프로젝트의 코드를 작성해야만하는 것은 아닙니다.

0

내가 myImage해야 내가 수동으로 dealloc 그것으로 끝났어요 후?

질문에 의미가 없습니다. ARC를 사용 중입니다. 대답이 '예'라고 가정합니다. 어떻게 할 건데? 당신은 할 수 없습니다. ARC는 NSObject 메모리 관리 명령을 제공하지 않습니다.

따라서 대답은 아니요이어야합니다.

관련 문제