, https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdTechnologyOverview.html#//apple_ref/doc/uid/TP40009296-SW1
하지만 그냥 배열을 저장하기 원하는대로, 당신은 NSUserDefaults
에 보일 것보고. NSUserDefaults
은 앱이 삭제되지 않는 한 특정 데이터를 저장합니다. 이를 위해 일종의 맞춤형 DataStorage 클래스를 만드는 것이 가장 좋습니다.
@interface DataStorage : NSObject <NSCoding>
@property (nonatomic, strong) NSMutableArray *arrayToStore;
+ (instancetype)sharedInstance;
- (void)save;
@end
위의 파일은 .h입니다. 보시다시피, 프로토콜은 NSCoding
입니다. 이를 통해 데이터를 인코딩 할 수있는 메소드에 액세스 할 수 있습니다. save 메소드를 사용하여 데이터를 디스크에 씁니다. 여기
#import "DataStorage.h"
@implementation DataStorage
@synthesize arrayOfPeople = _arrayToStore;
+ (DataStorage *)sharedInstance
{
static DataStorage *state = nil;
if (!state)
{
NSData *data =[[NSUserDefaults standardUserDefaults] objectForKey:@"DataStorageKey"];
if (data)
{
state = [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
else
{
state = [[DataStorage alloc] init];
}
}
return state;
}
- (id)init{
if (self = [super init]) {
if (!_arrayToStore) {
_arrayToStore = [[NSMutableArray alloc] init];
}
}
return self;
}
- (instancetype)initWithCoder:(NSCoder *)decoder
{
self = [self init];
if (self) {
if ([decoder decodeObjectForKey:@"DataStorageArrayToStore"]) {
_arrayToStore = [[decoder decodeObjectForKey:@"DataStorageArrayToStore"] mutableCopy];
}
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:_arrayToStore forKey:@"DataStorageArrayToStore"];
}
- (void)save
{
NSData *appStateData = [NSKeyedArchiver archivedDataWithRootObject:self];
[[NSUserDefaults standardUserDefaults] setObject:appStateData forKey:@"DataStorageKey"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
@end
클래스의 저장된 인스턴스가있는 경우 꽤 많이 평가하여 볼 수있는하는 .m 파일입니다, 그렇지 않은 경우는 하나를 생성합니다.
[DataStorage sharedInstance]
이 ...
일부 데이터를 저장할
, 당신은 단순히 클래스를 사용할 수 있도록 할 것이다 당신이 데이터를 사용 핵심 많은 양의 데이터를 관리하는 경우 파일이
#import "DataStorage.m
다음은
NSString *testData = [NSString stringWithFormat: @"Test Data String"];
[[DataStorage sharedInstance].arrayToStore addObject: testData];
[DataStorage sharedInstance] save];
를 사용했다, 그러나 배열에 일부 이름 만 저장하는 경우에는 NSUserDefaults를 사용하십시오. – Ian