코드가 맞습니까? dealloc을 수행 할 필요가 있고 릴리스해야 할 때 "super dealloc ARC가 금지합니다"라는 말은 dealloc이 아니라 release입니다 ?수퍼 dealloc을 수행 할 수 없으며 dealloc에 대한 설명이 필요하며 릴리스 간의 차이점은 무엇입니까?
#import "ImageViewController.h"
@interface ImageViewController()
@end
@implementation ImageViewController
@synthesize imageToDisplay=_imageToDisplay;
-(IBAction)click:(id)sender
{
if ([[sender title]isEqualToString:@"Dog"])
{
[_imageToDisplay setImage:[UIImage imageNamed:@"border-collie_177061-1280x1024.jpg"]];
}
else if ([[sender title]isEqualToString:@"FakeBook"])
{
[_imageToDisplay setImage:[UIImage imageNamed:@"images.jpeg"]];
}//else if
}//click
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)dealloc
{
[_imageToDisplay release];
[super dealloc];
}
@end
여기에는 두 가지 질문이 있으며 그 중 하나는 철저히 대답되었습니다. ARC를 사용하는 경우 dealloc에서도 항목을 해제 할 필요가 없습니다. 두 번째 질문은 release와 dealloc입니다 : 'release'는 객체를 메모리에서 지우라는 명령 (메시지)입니다. 그것은 당신이 객체로 끝났고 더 이상 필요 없다는 것을 의미합니다. 'dealloc'은 객체를 해제하는 메소드입니다. [super dealloc]은 그 메소드에서 부모 (슈퍼) 클래스가 자신의 dealloc 메소드를 실행하도록 지시하는 데 사용됩니다. – leanne