Quick Singleton 101 (хотелось бы, чтобы у меня было это, когда я начал, смеются. Все просто указали мне на документы, которые не сильно помогли).Имя синглтона будет «Singleton»
//Singleton.h
#import <Foundation/Foundation.h>
@interface SingletonManager : NSObject
{
NSDictionary* randomDictionary; //just using a dictionary for demonstrative purposes. You can make this a string or whatever you want.
}
+ (Singleton*)sharedSingleton;
@property (nonatomic, retain) NSDictionary *randomDictionary;
@end
А теперь .m
//Singleton.m
#import "Singleton.h"
static Singleton *sharedSingleton = nil;
@implementation Singleton
@synthesize randomDictionary;
#pragma mark Singleton Method
+ (Singleton*)sharedSingleton
{
@synchronized(self)
{
if(sharedSingleton == nil)
{
sharedSingleton = [[super allocWithZone:NULL] init];
}
}
return sharedSingleton;
}
@end
А чтобы установить / получить, сначала импортируйте синглтон в любой класс, который вам нужен: #import "Singleton.h"
, затем возьмите синглтон с Singleton *singletonManager = [Singleton sharedSingleton];
, и тогда вы сможете делать все, что вам нужно, по мере необходимостито есть, чтобы получить описание NSDictionary, которое вы бы назвали [[singletonManager randomDictionary] description];
Теперь это использует ARC, поэтому если вы этого не сделаете, вам просто нужно убедиться, что вы правильно управляете своей памятью.Наслаждайтесь.