将数据保存到iOS的最佳方法是什么?

在我的应用程序(iOS 5)中,我想保存数据 – 我想节省债务。 所以就是:

  • 加上或减去金钱
  • 金额
  • 和有债务的名字(或者你有债务的名字)

但我不知道如何保存数据(NSUserdefaults,核心数据,SQLLite)

也许你可以告诉我拯救他们的最好方法吗?

在设备上存储less量数据的最简单方法是使用NSUserDefaults。 但是只有财产清单可以这样保存。 属性列表是6种types的对象的组合,NSNumber,NSString,NSArray,NSDictionary,NSDate,NSData。 在你的情况下,这很容易做到。 例如,要保存新的债务logging,您可以使用以下方法:

#define DEBTS_LIST_KEY @"listOfAllDebts" #define DEBTOR_NAME_KEY @"debtorName" #define DEBT_AMOUNT_KEY @"amountOfDebt" -(void) saveDebt:(CGFloat) debtAmount forName:(NSString *) debtorName { // pointer to standart user defaults NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; // the mutalbe array of all debts NSMutableArray * alldebtRecords = [[defaults objectForKey:DEBTS_LIST_KEY] mutableCopy]; // create new record // to save CGFloat you need to wrap it into NSNumber NSNumber * amount = [NSNumber numberWithFloat:debtAmount]; NSDictionary * newRecord = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:amount,debtorName, nil] forKeys:[NSArray arrayWithObjects:DEBT_AMOUNT_KEY, DEBTOR_NAME_KEY, nil]]; [alldebtRecords addObject:newRecord]; [defaults setObject:alldebtRecords forKey:DEBTS_LIST_KEY]; // do not forget to save changes [defaults synchronize]; } 

读readList的债务你已经读了类似的东西。

但我build议你使用核心数据。 它更加灵活,你不必编写所有的代码来pipe理你的数据(编辑现有的logging,或删除它们)。 您将能够更容易地扩展您的模型,例如,当您想要保存债务date时。 这是一个很好的教程的链接

如果logging的数量是用户定义的,并且随应用程序的使用而增长,我build议可以由SQLite支持的Core Data。 如果您正在使用现代Xcode(例如Xcode 4),那么创build模型很简单,而且是graphics化的。 如果你曾经使用ORM框架,查询界面等应该很容易掌握。

search一些教程,但要具体find与您的Xcode版本相匹配的教程,因为核心数据开发最近已经发生了很大的变化。