C++에서는 생성자에서이 작업을 수행하지만 Objective C에서는 초기화하는 방법을 알지 못합니다.Objective C에서 개체를 만들 때 인스턴스 변수를 초기화하는 방법은 무엇입니까?
예를 들어, 사전이어야하는 멤버 변수가 있는데이 사전을 초기화하고 싶습니다.
C++에서는 생성자에서이 작업을 수행하지만 Objective C에서는 초기화하는 방법을 알지 못합니다.Objective C에서 개체를 만들 때 인스턴스 변수를 초기화하는 방법은 무엇입니까?
예를 들어, 사전이어야하는 멤버 변수가 있는데이 사전을 초기화하고 싶습니다.
일반적으로, 당신은 init
방법을 사용합니다. 예 :
Myclass *anInstance = [[MyClass alloc] init];
일부 클래스에는 매개 변수를 사용하는 특수 초기화 프로그램이 있습니다. 전형적인 예는 사용자가 구현하는 모든 UIViewController 하위 클래스입니다. 이게 익숙해 보여?
MyUIViewController *viewController = [[MyUIViewController alloc] initWithNibNamed: @"MyUIViewController" bundle: nil];
initWithNibNamed
비트에 유의하십시오. 그런 식으로 사용자 지정 초기화 프로그램을 작성할 수 있습니다. 다른 사람들이 쓴 코드를 읽는 것이 좋습니다. 이니셜 라이저를 찾고 그것이 작성/"설정"된 방법을 이해하려고 시도하십시오.
사전을 만들려면 NSDictionary
또는 NSMutableDictionary
을 사용할 수 있습니다. 그것들은 몇개의 초기화 프로그램을 가지고 있습니다. initWithObjects:
을 사용하고 사전에 저장할 오브젝트 묶음을 전달할 수 있습니다.
사전을 초기화 할 때, 메모리를 할당하려고한다고 가정합니다. 그렇다면 다음 샘플을 수행 할 수 있습니다.
- (id) init {
self = [super init];
if (self != nil) {
_privateDict = [[NSMutableDictionary alloc] initWithCapacity:40];
}
return self;
}