单例+ NSUserDefaults 数据固化的相关问题

今天在写一个项目的时候,发现了以前经常出现的问题。就是数据固化后,结果数据没有实时更新,导致后续出现一堆问题。在实际项目中,数据层的问题往往影响后续业务、以及架构逻辑问题。所以我花了很长时间研究我已将经常使用的单例+NSUserDefaults的方式。结果发现了一个惊天问题。


那就是千万不要把单例模式和数据固化联系到一起。因为数据固化的时候,其实已经做过单例处理,在做一次单例很有可能导致数据更新不及时,从而出现数据延迟的情况。

+(instancetype)sharedStore{

//确保多线程中只创建一次对象,线程安全的单例

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

instance = [[self alloc] initPrivate];

});

return instance;

}

-(instancetype)initPrivate{

self = [super init];

if (self) {

_dictionary = [[NSMutableDictionary alloc] init];

//注册为低内存通知的观察者

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];

[nc addObserver:self

selector:@selector(clearCaches:)

name:UIApplicationDidReceiveMemoryWarningNotification

object:nil];

[self loadUserInfo];

}

return self;

}

在loadUserInfo 加载各种数据,但是结果不及时

你可能感兴趣的:(单例+ NSUserDefaults 数据固化的相关问题)