使用字符串数组填充UITableView

时间:2012-02-05 18:49:18

标签: objective-c ios uitableview plist

我正在努力创建一个保存和放大器在我的应用程序中加载模块因此,用户可以保存一些特定信息,然后在任何时间点加载它。 我正在保存的是一组NSMutableStrings。我正在创建一个iPad应用程序,因此保存的信息将显示在带有TableView的弹出窗口中。

所以,这是问题所在。我想用我保存的数组填充tableView,为此我需要将我的数组存储在某个地方。我是Objective-c和编程的新手,并且希望你的建议是最好的方法。

我是否应该使用plist来存储带有Keys的数组,因此键将是用户在保存时引入的名称以及tableView单元格的名称?或者一个简单的NSMutableDictionary会做什么?

请指教。

2 个答案:

答案 0 :(得分:1)

This answer可能会对您有所帮助。使用核心数据在这里可能有点过分,保存到plist非常容易。这是Benoît对相关问题的回答:

NSString *error;
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
    NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"yourFile.plist"];
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:rootObj 
    format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];
if(plistData) {
    [plistData writeToFile:plistPath atomically:YES];
}
else {
    NSLog(@"Error : %@",error);
    [error release];
}

其中rootObj是您要序列化的对象,在本例中是您的数组/字典。


此外,如果您要在应用过程中经常读取/写入此数据,请使用singleton,这样可以在性能方面产生巨大的差异,而不是不断读/写文件。您可以在app-launch上将所有数据加载到单例中,并将其保存在applicationWillTerminate

要回答您的数组/字典问题,这取决于您获取字符串的方式以及您希望如何订购字符串。排序数组非常简单,您可以在this回答中看到。

答案 1 :(得分:0)

谢尔盖,根据您的描述,我建议您考虑使用Core Data进行数据存储。

https://developer.apple.com/library/mac/#documentation/cocoa/conceptual/coredata/cdprogrammingguide.html

除了存储数据外,Apple还以各种简洁的方式扩展了Core Data的使用,包括使用存储的数据通过使用NSFetchedResultsController来填充UITableViewController

https://developer.apple.com/library/ios/#documentation/CoreData/Reference/NSFetchedResultsController_Class/Reference/Reference.html

就是这样,给你一个阅读,你应该顺利。