を使用できますNSUserDefaults
。ユーザーモデルを作成します。NSCoding
プロトコルを実装します。保存中にアーカイブし、からフェッチしながらアーカイブを解除しNSUserDefaults
ます。
@interface User: NSObject<NSCoding>
@property (nonatomic, copy) NSString *firstName;
@property (nonatomic, copy) NSString *lastName;
- (void)save;
+ (id)savedUser;
//User.m
#define kSavedUser @"SavedUser"
#pragma mark - Encoding
- (void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:self.firstName forKey:@"FirstName"];
[encoder encodeObject:self.lastName forKey:@"LastName"]
}
#pragma mark - Decoding
- (id)initWithCoder:(NSCoder *)decoder
{
self = [super init];
if (self)
{
_firstName = [decoder decodeObjectForKey:@"FirstName"];
_lastName = [decoder decodeObjectForKey:@"LastName"];
}
return self;
}
-(void)save
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self];
[defaults setObject:data forKey:kSavedUser];
[defaults synchronize];
}
+ (id)savedUser
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [defaults objectForKey:kSavedUser];
if (data)
{
return [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
return nil;
}
+ (void)clearUser
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:kSavedUser];
[defaults synchronize];
}
これで、のインスタンスを作成できます
User *user = [[User alloc]init];
user.firstName = @"";
user.lastName = @"";
[user save];
取得したいとき
User *user = [User savedUser];
編集:データをクリアしたい場合は、静的メソッドを呼び出して保存されたユーザー情報を削除します
[User clearUser];