[iphone] Singletone Class만들기
요즘 다이어트 시대를 맞이해 연습차 칼로리 계산기를 만들어 보았다.
근데 칼로리를 지속적으로 저장해야 하는데 c# 같은경우는 그냥 static class 하나 만들어서 저장을 했는데
objective c에서도 있었다.
// SingletonClass.h
#import <Foundation/Foundation.h>
@interface SingletonClass : NSObject
{
}
+ (SingletonClass *)sharedSingletonClass;
@end
일단 이렇게 헤더 class를 만들고
// SingletonClass.m
#import "SingletonClass.h"
@implementation SingletonClass
+ (SingletonClass *)sharedSingletonClass
{
static SingletonClass *singletonClass = nil;
if(singletonClass == nil)
{
@synchronized(self)
{
if(singletonClass == nil)
{
singletonClass = [[self alloc] init];
}
}
}
return singletonClass;
}
@end
구현부에 이렇게 하면 된다.
사용은
SingletonClass *s = [SingletonClass sharedSingletonClass];
이렇게 하면 된다.
이렇게 하면 클래스 인스턴스를 한번만 생성되어서 어디서나 클래스를 만들어도
스태틱한 class가 되는것이다.
참고 : http://b4you.net/blog/210