2011-08-28 2 views
0

iPhone 용 알람 앱을 만들고 있는데 내 데이터를 저장하는 가장 좋은 방법이 궁금합니다. CoreData 구현을 시도했지만 작동하지 않습니다. CoreData를 사용하려면 Xcode에서 새 프로젝트를 만들 때 "CoreData for storage"라는 확인란을 선택해야한다는 것을 알았습니다. 대신 뷰 기반 응용 프로그램을 만들었습니다. CoreData를 구현할 수 있습니까? 아니면 plist 나 SQLite와 같은 다른 것을 사용해야합니까?알람 앱 데이터는 어떻게 저장해야합니까?

+1

plist가 잘 될 수있는 소량의 데이터입니다. 그렇지 않으면 CoreData를 사용하십시오. – zaph

+0

나는 fireDate, label 및 repeat interval과 같은 사용자가 생성 할 수있는 각 알람에 대한 알람 객체 만 저장하려고합니다. plist가 이것을 처리 할 수있을 것이라고 생각합니까? – Souljacker

+0

물론 코어 데이터를 사용할 수 있습니다. 핵심 데이터 옵션을 선택하고 프로젝트 (특히 애플리케이션 위임)를 살펴보고 새 프로젝트를 만듭니다. 당신은 다른 프로젝트에 많은 핵심 데이터 코드를 복사하여 붙여 넣을 수 있습니다. – HeikoG

답변

3

NSUserDefaults의 데이터를 사전 배열로 저장하면됩니다. 의 당신을 가정 해 봅시다 예를 들어

가 있습니다

NSDictionary *alarmOne = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:fireDateOne, labelOne, repeatIntervalOne, nil] forKeys:[NSArray arrayWithObjects:@"fireDate", @"label", @"repeatInterval"]]; 
NSDictionary *alarmTwo = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:fireDateTwo, labelTwo, repeatIntervalTwo, nil] forKeys:[NSArray arrayWithObjects:@"fireDate", @"label", @"repeatInterval"]]; 
NSArray *alarmsToBeSaved = [NSArray arrayWithObjects:alarmOne, alarmTwo, nil]; 
//save the alarms 
[[NSUserDefaults standardUserDefaults] setObject:alarmsToBeSaved forKey:@"MyAlarms"]; 

//get alarms back from NSUserDefaults 
NSArray *alarms = [[NSUserDefaults standardUserDefaults] objectForKey:@"MyAlarms"]; 
for (NSDictionary *alarm in alarms){ 
    NSLog(@"label of alarm: %@", [alarm objectForKey:@"label"]); //output alarm labels for example! 
} 

당신은 또한 응용 프로그램의 문서 디렉토리에있는 디스크에이 배열을 절약 할 수 ...

코어 데이터는 대형 세트가있을 때 더 나은 보통이다 (검색) 및 메모리 사용을보다 잘 제어 할 수 있습니다.

새 알람을 추가하는 방법은 무엇입니까?

NSDictionary *alarmThree = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:fireDateThree, labelThree, repeatIntervalThree, nil] forKeys:[NSArray arrayWithObjects:@"fireDate", @"label", @"repeatInterval"]]; 

NSMutableArray *newAlarms = [NSMutableArray arrayWithObjects:[[NSUserDefaults standardUserDefaults] objectForKey:@"MyAlarms"]]; 
//add the new alarm Dict 
[newAlarms addObject:alarmThree]; 
//save the array 
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithArray:newAlarms] forKey:@"MyAlarms"]; 
+0

그러면 사용자가 추가 한 데이터를 어떻게 저장합니까? – Souljacker

+1

세 번째 알람 저장 방법 추가 – Ladislav