'정적변수'에 해당되는 글 1건

  1. 2010.05.05 정적(static)변수
Objective C/변수2010. 5. 5. 22:00
메서드를 구현 중 자주 사용하는 패턴이 싱글턴 패턴이 있다. 이러한 패턴을 사용하기 위해서 자주 사용하는 것이 정적변수와 클래스 메서드다. 이 둘을 잘 사용하면 캡슐화와 좋은 객체 지향 기법을 지켜 줄 수 있다.

#import "ClassA.h"


static int gCounter = 0;


@implementation ClassA


+(ClassA *) allocA

{

extern int gCounter;

++ gCounter;

return [ClassA alloc];

}


+(int) count

{

 extern int gCounter;

return gCounter

}


@end


위의 코드는 클래스 메서드에서 정적메서드로 접근하여 값을 참조하고 있다.  우리가 흔히 instance와 getInstance를 사용한 싱글턴 패턴을 생각하면 될것 같다. 정적메서드는 내부 변수에 직접 접근하지 못하므로 클래스메서드 즉 getInstance로 접근하여 값을 참조한다는 것을 생각하면 된다. 여기서는 클래스 메서드에서 extern 지시어로 내부의 정적변수로 접근하고 있다.
Posted by 버터백통