Last active
April 27, 2022 17:25
-
-
Save lamprosg/5244817 to your computer and use it in GitHub Desktop.
(iOS) NSUserDefaults
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //Set the (bool) flag | |
| [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"logged_in"]; | |
| [[NSUserDefaults standardUserDefaults]synchronize]; | |
| //Read it | |
| if(![[NSUserDefaults standardUserDefaults] boolForKey:@"logged_in"]) | |
| { | |
| [self displayLogin]; | |
| } else { | |
| [self displayMainScreen]; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -(void)saveToUserDefaults:(NSString*)myString | |
| { | |
| NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; | |
| if (standardUserDefaults) { | |
| [standardUserDefaults setObject:myString forKey:@"Prefs"]; | |
| [standardUserDefaults synchronize]; | |
| } | |
| } | |
| -(NSString*)retrieveFromUserDefaults | |
| { | |
| NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; | |
| NSString *val = nil; | |
| if (standardUserDefaults) | |
| val = [standardUserDefaults objectForKey:@"Prefs"]; | |
| return val; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| +(void) addToFavorites: (Record *)record { | |
| if (!Eng.user.loggedIn) return; | |
| NSString *key = [[NSString alloc] initWithFormat:@"%@%i", STORE_DATA_FAVORITES_KEY, Eng.user.userId]; | |
| NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; | |
| NSMutableArray *favorites = [[(NSMutableArray *)[defaults objectForKey:key] mutableCopy] autorelease]; | |
| if (favorites == nil) { | |
| favorites = [NSMutableArray array]; | |
| } | |
| NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:record]; | |
| if (![favorites containsObject:encodedObject]) | |
| [favorites addObject:encodedObject]; | |
| [defaults setObject:favorites forKey:key]; | |
| [defaults synchronize]; | |
| NSLog(@"Favorites: %i", favorites.count); | |
| [key release]; | |
| } | |
| +(void) removeFromFavorites: (Record *)record { | |
| if (!Eng.user.loggedIn) return; | |
| NSString *key = [[NSString alloc] initWithFormat:@"%@%i", STORE_DATA_FAVORITES_KEY, Eng.user.userId]; | |
| NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; | |
| NSMutableArray *favorites = [[(NSMutableArray *)[defaults objectForKey:key] mutableCopy] autorelease]; | |
| NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:record]; | |
| [favorites removeObject:encodedObject]; | |
| [defaults setObject:favorites forKey:key]; | |
| [defaults synchronize]; | |
| NSLog(@"Favorites: %i", favorites.count); | |
| [key release]; | |
| } | |
| +(NSInteger) countFavorites { | |
| if (!Eng.user.loggedIn) return 0; | |
| NSString *key = [[NSString alloc] initWithFormat:@"%@%i", STORE_DATA_FAVORITES_KEY, Eng.user.userId]; | |
| NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; | |
| NSMutableArray *favorites = [defaults objectForKey:key]; | |
| [key release]; | |
| return favorites.count; | |
| } | |
| +(NSArray *) getFavoritesAsRecords { | |
| if (!Eng.user.loggedIn) return nil; | |
| NSString *key = [[NSString alloc] initWithFormat:@"%@%i", STORE_DATA_FAVORITES_KEY, Eng.user.userId]; | |
| NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; | |
| NSMutableArray *favorites = [defaults objectForKey:key]; | |
| //Used to reset favorites | |
| // [defaults setObject:[NSMutableArray array] forKey:key]; | |
| // [defaults synchronize]; | |
| NSMutableArray *favs = [[NSMutableArray alloc] init]; | |
| NSEnumerator *e = [favorites objectEnumerator]; | |
| NSData *object; | |
| Record *record; | |
| while (object = [e nextObject]) { | |
| record = (Record *)[NSKeyedUnarchiver unarchiveObjectWithData:(NSData *)object]; | |
| [favs addObject:record]; | |
| } | |
| MyLog(@"Will show %i records", favs.count); | |
| [key release]; | |
| return [favs autorelease]; | |
| } | |
| +(BOOL) isInFavorites: (Record *)record { | |
| if (!Eng.user.loggedIn) return NO; | |
| NSString *key = [[NSString alloc] initWithFormat:@"%@%i", STORE_DATA_FAVORITES_KEY, Eng.user.userId]; | |
| NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; | |
| NSMutableArray *favorites = [defaults objectForKey:key]; | |
| NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:record]; | |
| [key release]; | |
| return [favorites containsObject:encodedObject]; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //Usage | |
| NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| //Setting values | |
| – setBool:forKey: | |
| – setFloat:forKey: | |
| – setInteger:forKey: | |
| – setObject:forKey: | |
| – setDouble:forKey: | |
| – setURL:forKey: | |
| //Getting values | |
| – boolForKey: | |
| – floatForKey: | |
| – integerForKey: | |
| – objectForKey: | |
| – doubleForKey: | |
| – URLForKey: | |
| //Remove an object | |
| [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"MyKey"]; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment