想象一下,您有一个项目列表,这些项目是按日期排序的对象数组(字段:标题,描述,日期)。您从列表中选择一个项目并将其存储在本地设备上。然后,您可以按日期排序的数组(UITableView)中加载存储项目列表。
我认为使用核心数据是过度的。你会用什么以及如何使用? THx中!
答案 0 :(得分:3)
好吧,我会创建类实现NSCoding
并使用NSKeyedArchiver
将对象保存到文件中;
您可以直接遍历目录并使用NSKeyedUnarchiver
加载所有对象。
答案 1 :(得分:1)
如果您的阵列中没有太多项目,使用某种xml解决方案将是完美的。
plist很棒,因为后端存储是人类可读和可编辑的。还有内置功能,可以毫不费力地将字典和数组转换为plists。例如(writeToFile:atomically:)和(arrayWithContentsOfFile:)
请注意,如果您的数组/字典仅包含以下项目,则只能使用这些方法:NSString,NSData,NSArray或NSDictionary。否则你将不得不实施NSCoding,这稍微有点工作。
COre数据有很多好处,因此如果您需要花时间加载/搜索,请考虑切换。
答案 2 :(得分:0)
你可以选择SQLite
和Plist
......
我更喜欢SQLite
,因为数据排序会更容易..
答案 3 :(得分:0)
使用PList是在iphone应用程序中保存数据的最佳和最简单的方法。我会告诉你如何做到这一点。
这是在Plist中保存数据的方法。
//Create String to get data ...
NSString *typeUrl = [NSString stringWithFormat:@"%@",url.text];
// Create Plist File
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"url.plist"];
NSString *tempurl = [NSString stringWithFormat:@"%@",typeUrl];
// Remove data previously stored in plist file ...
[[NSFileManager defaultManager] removeItemAtPath:path error:NULL];
// Create NSMutableArray to Store your string ...
NSMutableArray urlDetails = [[NSMutableArray alloc] init];
// Add String to Array ...
[urlDetails addObject:tempurl];
// Store that array in Plist File ...
[urlDetails writeToFile:path atomically:YES];
这是从Plist读取数据的方法。
// Find Plist file you created and cheack that file exsist ...
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"password.plist"];
BOOL passwordfileExists = [[NSFileManager defaultManager] fileExistsAtPath:path];
// if the file exsist create NSMutableArray and read the value and put that in to the String
if (passwordfileExists == YES) {
NSMutableArray* plistDict = [[NSMutableArray alloc] initWithContentsOfFile:path];
NSString *value = [NSString stringWithFormat:@"%@",[plistDict objectAtIndex:0]];
// Set that string to the textField
oldpassText = [NSString stringWithFormat:@"%@",value];
}
这就是我在Plist文件中保存数据的方式,而且它很容易。我想这会对你有所帮助。