Skip to content

lakesoft/LKUserDefaults

Repository files navigation

LKUserDefaults

Usage

Step 1 : Define subclass of LKUserDefaults

#import "LKUserDefaults.h"

@interface UserDefaults : LKUserDefaults
@property (strong, nonatomic) NSString* name;
@property (strong, nonatomic) NSString* email;
@end

Step 2 : Access properties => done

UserDefaults* defaults = [UserDefaults sharedInstance];
defaults.name = @"Hoge";        // Write to NSUserDefaults for key "name"
    :
NSString* name = defaults.name; // Read from NSUserDefaults for key "name"

It is possible to register default values.

- (void)registerDefaults
{
    self.name = @"unkown";
    self.email = @"unkown@xcatsan.com";
}

These value will be used as default values when the values for keys are notfound in NSUserDefaults.

These value can be retrieved via 'registeredDeafults' property.

NSString* initName = defaults.registeredDefaults.name;
NSString* initEmail = defaults.registeredDefaults.email;

It is possible to remove all values (remove user defauls file).

[UserDefaults removeUserDefaults];

Types:

@property (assign, nonatomic) BOOL boolValue;
@property (assign, nonatomic) NSInteger integerValue;
@property (assign, nonatomic) float floatValue;
@property (assign, nonatomic) double doubleValue;

@property (strong, nonatomic) NSString* stringValue;
@property (strong, nonatomic) NSArray* arrayValue;
@property (strong, nonatomic) NSArray* stringArrayValue;
@property (strong, nonatomic) NSDictionary* dictionaryValue;
@property (strong, nonatomic) NSData* dataValue;
@property (strong, nonatomic) NSURL* urlValue;
@property (strong, nonatomic) NSDate* dateValue;

Notes

  • Property ARC attributes should be 'strong'.

Installation

LKUserDefaults is available through CocoaPods, to install it simply add the following line to your Podfile:

pod "LKUserDefaults", :git => 'https://github.com/lakesoft/LKUserDefaults.git'

Author

Hiroshi Hashiguchi, xcatsan@mac.com

License

LKUserDefaults is available under the MIT license. See the LICENSE file for more info.