次のような独自のオブジェクトのために実装する必要があります。 NSDataに変換されたカスタムオブジェクトの例(ユーザーデフォルトに保存できるように)
次のファイルを作成します。
カタログ。時間
@interface Catalog : NSObject
@property (nonatomic, assign) int pk;
@property (nonatomic, copy) NSString *catalogName;
@property (nonatomic, copy) NSString *catalogDescription;
@property (nonatomic, assign) int catalogEdition;
@property (nonatomic, assign) int catalogTotalPages;
- (void)encodeWithCoder:(NSCoder *)aCoder;
- (id)initWithCoder:(NSCoder *)aDecoder;
@end
Catalog.m
#import <Foundation/Foundation.h>
#import "Catalog.h"
@implementation Catalog
- (void)encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeObject:self.catalogName forKey:@"catalogName"];
[aCoder encodeObject:self.catalogDescription forKey:@"catalogDescription"];
[aCoder encodeInt:self.catalogEdition forKey:@"catalogEdition"];
[aCoder encodeInt:self.catalogTotalPages forKey:@"catalogTotalPages"];
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super init]) {
self.catalogName = [aDecoder decodeObjectForKey:@"catalogName"];
self.catalogDescription = [aDecoder decodeObjectForKey:@"catalogDescription"];
self.catalogEdition = [aDecoder decodeIntForKey:@"catalogEdition"];
self.catalogTotalPages = [aDecoder decodeIntForKey:@"catalogTotalPages"];
}
return self;
}
@end
最後に、あなたのコントローラ内のファイル
#import "Catalog.h"
ヘッダと(ユーザデフォルトに保存この場合、イムに)あなたのオブジェクトを使用するには、このコードを追加含ま
Catalog *catalog = [[Catalog alloc] init];
catalog.catalogName = @"catalogName";
catalog.catalogDescription = @"catalogName";
catalog.catalogEdition = 1;
注:実際のデータの受け渡しは、あなたがこの情報がお役に立てば幸いNSData *nsData = [[NSUserDefaults standardUserDefaults] objectForKey:@"keyName"];
//unarchiving object to nsdata
Catalog *selectedCatalog = [NSKeyedUnarchiver unarchiveObjectWithData: nsData];
NSDataの
から戻ってあなたのオブジェクトを取得したい場合は場所
//archiving object to nsdata
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:catalog];
[[NSUserDefaults standardUserDefaults] setObject:encodedObject forKey:@"keyName"];
[[NSUserDefaults standardUserDefaults] synchronize];
を取っているところのコード行であります!
なぜこれがダウン表示されましたか?笑。 –
(私はあなたにdownvoteをしなかった)おそらくそれはNSKeyedUnarchiverがNSUserDefaultsにマップしないためです... – CodaFi
なぜこのコンセプトはNSUserDefaultsに関係していますか –