현재 응용 프로그램에서 올바른 메모리 관리를 따르고 있는지 확인하려고합니다. 그래도 두 가지 질문이 있습니다.iPhone 속성 문제
(1) dealloc()에서 [self.myString release]를 릴리스해야합니까? 이것이 언제 공개되지 않을까요?
(2) viewDidUnload()에 _myString = nil을 설정해야합니까? 객체가 오토 릴리즈되지 않는
@interface ViewController : UIViewController
{
NSString *_myString;
}
@property (nonatomic, retain) NSString *myString;
@end
@implementation ViewController
@synthesize myString = _myString;
- (void)viewDidLoad
{
[super viewDidLoad];
self.myString = [[NSString alloc] initWithString:@"Hello World"];
NSLog(@"%@", self.myString);
}
- (void)viewDidUnload
{
self.myString = nil;
[super viewDidUnload];
}
- (void)dealloc
{
[_myString release];
[super dealloc];
}
@end
이 기능을 사용하도록 설정하면 ARC (Automatic Reference Counting)로 전환하는 것이 좋습니다. 컴파일러가 모든 것을 릴리스하므로 직접 아무 것도 릴리스 할 필요가 없습니다. –
이것은 옵션이 아니지만 제안에 감사드립니다. – Vikings
좋아, 행운을 빈다! –