@@ -374,20 +374,17 @@ - (void)setUniversalLinkUrl:(NSString *)universalLinkUrl {
374374}
375375
376376- (NSString *)sessionParams {
377- @synchronized (self) {
378- if (!_sessionParams) {
379- _sessionParams = [self readStringFromDefaults: BRANCH_PREFS_KEY_SESSION_PARAMS];
380- }
381- return _sessionParams;
377+ if (_sessionParams) {
378+ _sessionParams = [self readStringFromDefaults: BRANCH_PREFS_KEY_SESSION_PARAMS];
382379 }
380+
381+ return _sessionParams;
383382}
384383
385384- (void )setSessionParams : (NSString *)sessionParams {
386- @synchronized (self) {
387- if (![_sessionParams isEqualToString: sessionParams]) {
388- _sessionParams = sessionParams;
389- [self writeObjectToDefaults: BRANCH_PREFS_KEY_SESSION_PARAMS value: sessionParams];
390- }
385+ if (![_sessionParams isEqualToString: sessionParams]) {
386+ _sessionParams = sessionParams;
387+ [self writeObjectToDefaults: BRANCH_PREFS_KEY_SESSION_PARAMS value: sessionParams];
391388 }
392389}
393390
@@ -609,48 +606,42 @@ - (NSDictionary *)getContentAnalyticsManifest {
609606 return (NSDictionary *)[self readObjectFromDefaults: BRANCH_PREFS_KEY_ANALYTICS_MANIFEST];
610607}
611608
612-
613609#pragma mark - Writing To Persistence
614610
615-
616611- (void )writeIntegerToDefaults : (NSString *)key value : (NSInteger )value {
617- [self writeObjectToDefaults: key value: @(value)];
612+ self.persistenceDict [key] = @(value);
613+ [self persistPrefsToDisk ];
618614}
619615
620616- (void )writeBoolToDefaults : (NSString *)key value : (BOOL )value {
621- [self writeObjectToDefaults: key value: @(value)];
617+ self.persistenceDict [key] = @(value);
618+ [self persistPrefsToDisk ];
622619}
623620
624621- (void )writeObjectToDefaults : (NSString *)key value : (NSObject *)value {
625- @synchronized (self) {
626- if (value) {
627- self.persistenceDict [key] = value;
628- }
629- else {
630- [self .persistenceDict removeObjectForKey: key];
631- }
632- [self persistPrefsToDisk ];
622+ if (value) {
623+ self.persistenceDict [key] = value;
624+ }
625+ else {
626+ [self .persistenceDict removeObjectForKey: key];
633627 }
628+
629+ [self persistPrefsToDisk ];
634630}
635631
636632- (void )persistPrefsToDisk {
637633 @synchronized (self) {
638- if (!self.persistenceDict ) return ;
639- NSData *data = nil ;
640- @try {
641- data = [NSKeyedArchiver archivedDataWithRootObject: self .persistenceDict];
642- }
643- @catch (id exception) {
644- data = nil ;
645- [self logWarning:
646- [NSString stringWithFormat: @" Exception creating preferences data: %@ ." ,
647- exception]];
648- }
649- if (!data) {
650- [self logWarning: @" Can't create preferences data." ];
651- return ;
652- }
634+ NSDictionary *persistenceDict = [self .persistenceDict copy ];
653635 NSBlockOperation *newPersistOp = [NSBlockOperation blockOperationWithBlock: ^ {
636+ NSData *data = nil ;
637+ @try {
638+ data = [NSKeyedArchiver archivedDataWithRootObject: persistenceDict];
639+ } @catch (id n) {
640+ }
641+ if (!data) {
642+ [self logWarning: @" Can't create preferences archive." ];
643+ return ;
644+ }
654645 NSError *error = nil ;
655646 [data writeToURL: self .class.URLForPrefsFile
656647 options: NSDataWritingAtomic error: &error];
@@ -660,7 +651,7 @@ - (void)persistPrefsToDisk {
660651 @" Failed to persist preferences to disk: %@ ." , error]];
661652 }
662653 }];
663- [self .persistPrefsQueue addOperation: newPersistOp];
654+ [self .persistPrefsQueue addOperation: newPersistOp];
664655 }
665656}
666657
0 commit comments