'initWith'에 해당되는 글 1건

  1. 2010.05.05 객체의 초기화 메서드
Objective C/변수2010. 5. 5. 18:02
가장 기본적인 클래스인 NSObject에서는 init이라는 메서드를 제공하며 클래스를 초기화 하여 준다.
그러나 경우에 따라 다양한 초기화 메서드가 존재하는 것을 볼 수 있다. 가령 NSString의 경우 initWithFormat를 제공한다.
이는 초기화와 동시에 어떤 값을 같이 설정하게 해준다.
어떤 클래스에 이와 비슷한 이름(가독성을 높이고자 대부분의 초기화 메서드는 앞에 init을 붙이고 있다)을 설정하고 필요한 값을 전달할 수 있게 한다.

아래는 어떤 클래스를 만들고 초기화 시에 2개의 정수를 받는 초기화 메서드이다.

-(MyClass *) initWith:(int) a :(int) b

{

/*

 이 클래스의 상위 클래스에서 init메시지를 전달함으로 기본적인 초기화 기능을 수행한다.

*/

[super init];

/*

 만약 초기화에 성공하여 메모리상에 존재하게되면.. self 존재하게 하면

  self 값을 받는 값으로 초기화 한다.

*/

num1 = a;

num2 = b;

/*

 초기화 메서드는 메모리상의 객체를 바꾸거나 이동 시킬 수 있는 권한이 있기 때문에

 반환값을 self에 할당해 주어야 한다.

*/

return self;

}


이 클래스를 생성하고 초기화 시에 initwith::를 실행하여 필요한 값을 대입한다.


이 처럼 필요한 경우 초기화 메서드를 개량하여 기능을 정해주면 된다. 다만 반드시 내부에서 실제 수행할 초기화 메서드인 init을 한 번 호출해 주면 된다.

Posted by 버터백통