iPhone 용 알람 앱을 만들고 있는데 내 데이터를 저장하는 가장 좋은 방법이 궁금합니다. CoreData 구현을 시도했지만 작동하지 않습니다. CoreData를 사용하려면 Xcode에서 새 프로젝트를 만들 때 "CoreData for storage"라는 확인란을 선택해야한다는 것을 알았습니다. 대신 뷰 기반 응용 프로그램을 만들었습니다. CoreData를 구현할 수 있습니까? 아니면 plist 나 SQLite와 같은 다른 것을 사용해야합니까?알람 앱 데이터는 어떻게 저장해야합니까?
0
A
답변
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
plist가 잘 될 수있는 소량의 데이터입니다. 그렇지 않으면 CoreData를 사용하십시오. – zaph
나는 fireDate, label 및 repeat interval과 같은 사용자가 생성 할 수있는 각 알람에 대한 알람 객체 만 저장하려고합니다. plist가 이것을 처리 할 수있을 것이라고 생각합니까? – Souljacker
물론 코어 데이터를 사용할 수 있습니다. 핵심 데이터 옵션을 선택하고 프로젝트 (특히 애플리케이션 위임)를 살펴보고 새 프로젝트를 만듭니다. 당신은 다른 프로젝트에 많은 핵심 데이터 코드를 복사하여 붙여 넣을 수 있습니다. – HeikoG