将数据保存到存储

时间:2011-11-11 15:34:31

标签: iphone ios

假设我有一些想要发布到服务器的数据。你在一个深深的地下酒窖(或者你使用t-mobile)并且你没有互联网连接。这些数据在哪里?把它留在那里等待连接?我宁愿保存这些数据,并使其可用于上传您有连接的第二个数据。

使用SQlite会是最好的方法吗?这只是我要临时存储的几个对象。

3 个答案:

答案 0 :(得分:1)

如果只有几个对象将数据保存在NSUserDefaults或plist文件中。

NSUserDefaults设置:

[[NSUserDefaults standardUserDefaults] setObject:savedStr forKey:objectDataStoreName];
[[NSUserDefaults standardUserDefaults] synchronize];

NSUserDefaults获得:

savedStr = [[NSUserDefaults standardUserDefaults] objectForKey:objectDataStoreName];

或使用plist:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *newDirectory = [NSString stringWithFormat:@"%@/savedData", [paths objectAtIndex:0]];
[[NSFileManager defaultManager] createDirectoryAtPath:newDirectory withIntermediateDirectories:YES attributes:nil error:nil];
NSString *fullFileName = [NSString stringWithFormat:@"%@/savedItemsFile", newDirectory];

savedItems = [[NSMutableArray alloc] initWithContentsOfFile:fullFileName];
if  (!savedItems) {
    savedItems = [[NSMutableArray alloc] init];
}
savedItem = [[NSMutableDictionary alloc] init];

[savedItem setObject:savedStr forKey:objectDataStoreName];
[savedItems addObject:savedItem];

[savedItems writeToFile:fullFileName atomically:NO];

答案 1 :(得分:0)

那取决于你,apple指出你需要检查是否有可用的互联网连接。如果请求失败,您将收到错误消息。

如果您以后可以发送数据,请保存并稍后重试。如果您不能在以后发送数据,则通知用户无法发送数据。

这完全取决于应用程序的规格。

我使用plist,SQLite和coredata来保存设备上的数据,并在网络连接可用时将它们发送到服务器。

如果您准备好将数据存储在数据库中,只需添加一个位,告诉您是否已将数据发送到服务器,或者更好地让服务器返回上传的标识符,以便稍后更新某些记录上。

答案 2 :(得分:0)

如果不是很大,可以使用NSUserDefaults

如果它很大,我建议您使用Core Data

相关问题