objective-c에서 Singleton 개념을 이해하려고합니다.많은 변수가있는 objective-c의 Singleton 개념을 이해하려고 시도합니다.
대부분의 예제는 하나의 변수를 나타냅니다.
예를 들어 x, y, z를 반환하는 가속도계 값과 같이 많은 변수를 처리하기 위해 예제를 조정하는 방법에 대해 약간 분실했습니다.
나를 조금 더 안내 할 수 있습니까?
objective-c에서 Singleton 개념을 이해하려고합니다.많은 변수가있는 objective-c의 Singleton 개념을 이해하려고 시도합니다.
대부분의 예제는 하나의 변수를 나타냅니다.
예를 들어 x, y, z를 반환하는 가속도계 값과 같이 많은 변수를 처리하기 위해 예제를 조정하는 방법에 대해 약간 분실했습니다.
나를 조금 더 안내 할 수 있습니까?
싱글 톤은 응용 프로그램의 수명 내내 한 번만 존재할 수있는 특수 개체를 나타냅니다. 그 객체는 필요한만큼 많은 변수와 속성을 가질 수 있습니다.
// Singleton.h
@interface Singleton : NSObject
@property (readwrite) int propertyA;
@property (readwrite) int propertyB;
@property (readwrite) int propertyC;
+ (Singleton *)sharedInstance;
@end
싱글의 핵심은 한 번만 생성 될 수 있다는 것입니다. 대개 Objective-C에서는 @synchronized()
지시문을 사용하여 한 번만 생성되도록합니다. 이것을 sharedInstance
이라는 편의 클래스 메서드에 넣고 싱글 톤을 반환합니다. 싱글 톤은 단지 객체이기 때문에 여러 속성, 변수 및 메서드를 쉽게 가질 수 있습니다.
// Singleton.m
#import "Singleton.h"
@interface Singleton()
{
int variableA;
int variableB;
int variableC;
}
@end
@implementation Singleton
static Singleton *sharedInstance = nil;
+ (Singleton *)sharedInstance
{
@synchronized(self) {
if (sharedInstance == nil) {
sharedInstance = [[Singleton alloc] init];
}
}
return sharedInstance;
}
+ (id)allocWithZone:(NSZone *)zone {
@synchronized(self) {
if (sharedInstance == nil) {
sharedInstance = [super allocWithZone:zone];
return sharedInstance;
}
}
return nil;
}
- (id)init {
self = [super init];
if (self) {
// Inits
}
return self;
}
@end
이것은 싱글을 만들 수있는 유일한 방법은 아니다. 중요한 부분은 한 번만 만들 수 있다는 것을 기억하십시오. dispatch_once
과 같은 OSX 및 iOS 용으로 개발할 때 새로운 Grand Central Dispatch 호출을 이용할 수 있습니다.
그래서 다른 객체가 다른 곳 싱글 이야기가 있다고 가정 할 수있는 싱글
에 이야기. 이것은 당신에게 어디서나 수행 할 수 있습니다 #import "Singleton.h"
- (void)someMethod
{
// Setting properties
int valueA = 5;
[[Singleton sharedInstance] setPropertyA:valueA];
// Reading properties
int valueB = [[Singleton sharedInstance] propertyB];
}
안녕하세요, 이해가 안 고맙습니다 마지막은 a, b, c에서 값을 할당하는 방법입니다 a, b 또는 c에서 값을 얻는 방법. 감사합니다 레지스 – user1961175
속성에 액세스하는 방법을 보여주기 위해 조금 추가되었습니다. 변수는 내부 전용이므로 싱글 톤 외부에 할당 할 수 없습니다. –
이 튜토리얼을 Objective-C 프로그래밍의 기본적인 내용에서 확인하는 것이 좋습니다. 도움이 될 것입니다. http://www.raywenderlich.com/21320/objectively-speaking-a-crash-course-in-objective-c-ios6 –
대신 하나의 변수 사용 3 .... –