나는 항상 @synthesize
을 .h 파일에 선언 된 클래스 속성과 함께 사용했습니다. 어떤 Apple 문서 found here에있는 PhotoPicker 예를보고 매우 혼란스러운 선언을 발견했습니다.Apple 설명서에서 ivars를 해제하고 속성을 nil로 설정
#import <UIKit/UIKit.h>
@interface AppDelegate : NSObject <UIApplicationDelegate>
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
을 그리고 자신의 Appdelegate.m 파일이이 쓰기 : 자신의 AppDelegate에 클래스 (.H 파일)가 다음과 같이 어떤 인스턴스 변수, 단지 특성을 생성하지 않는 지금
#import "AppDelegate.h"
@interface AppDelegate()
@property (nonatomic, retain) IBOutlet UINavigationController *navController;
@end
@implementation AppDelegate;
을, 나는 내가 dealloc
방법을 보면 그러나 그들은 해제, 어떤 @synthesize
지시, 또는 인스턴스 변수를 찾을 수없는 일부 "보이지 않는"인스턴스 변수 (무엇 ???)
- (void)dealloc
{
[_navController release];
[_window release];
[super dealloc];
}
그리고의 ViewController 카스티에 그들은 viewDidUnload
에 nil 속성을 설정하고 dealloc
메서드에서 (생성되지 않은) "ivars"를 해제합니다.
새로운 Xcode와 관련이 있습니까? 누군가가 이것에 약간의 빛을 비춰 줄 수 있습니까? didReceiveMemoryWarning
에 대한 내 논리를 확인하고 있었고 항상 viewDidUnload
에 nil 속성을 설정하고 dealloc
에 ivars를 릴리스했지만 이전에이 작업을 보지 못했습니다.
미리 도움을 청하십시오.
iOS (5 이상) sdk를 사용하고 계십니까? 나는 xcode가 자동으로 우리를 위해이 기능을 iOS 5에서 소개한다고 생각한다. – kidsid49
속성에 대해 XCode 4.5로 @synthesise 라인이 자동으로 생성된다. – CarlJ
예는 iOS 5.0 SDK를 사용하지만 iOS 4.3을 대상으로한다고 가정 해 보겠습니다. , 내가 선언하지 않더라도 나는 ivar을 내야 하나? –