Я смущен о том, как эффективно использовать singleton
. Я хочу, чтобы мой класс singleton
вел себя как [NSUserDefaults standardUserDefaults]
. Но я наблюдал каждый раз, когда он создает новый объект, и каждый раз вижу другой адрес памяти.singleton создаются каждый раз при каждом запуске
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
MyManager *sharedManager = [MyManager sharedManager];
if(sharedManager.name.length==0) {
sharedManager.name = @"manager";
}
return YES;
}
+ (id)sharedManager {
static MyManager *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;}
каждый раз при запуске, если выполняется условие.
Конечно, это так. Синглтон длится только при запуске приложения. 'NSUserDefaults' ничем не отличается. Если вы хотите, чтобы данные выжили при запуске приложений, вам необходимо сохранить и восстановить данные из файла или другого хранилища. – rmaddy