如何使用nsuserdefault或任何其他ios,objective c保存动态添加的字段数据

时间:2016-03-02 18:11:31

标签: ios objective-c nsuserdefaults

我有一个应用程序,它有两个视图控制器。在第一个视图控制器中有一个表视图。表视图行计数是动态的。这意味着它改变了时间。例如它可以是3,4, 1,8喜欢这个。根据用户的选择而改变。比如follow.this time row count是7. enter image description here

当用户点击单元格以添加旅行者详细信息时,它会导航到第二个视图控制器,其中包含表单(名字,姓氏,类似的电子邮件)。然后用户输入详细信息(表单如下)

enter image description here

并按下done按钮,输入的详细信息应保存到nsuserdefault。如果有n个(最多12位)旅行者,n详细信息应该保存温度。

  1. 可以使用nsuserdefault,如果可能的话,我该怎么做。
  2. 还有其他方法可以做到这一点。
  3. 希望得到你的帮助。非常感谢你。

2 个答案:

答案 0 :(得分:1)

当然可以在NSUserDefault中保存所有细节。您只需收集数据并将其作为数组放在NSUserDefault中:

NSArray *dataToSave = [self methodToTakeAllData];
[[NSUserDefaults standardUserDefaults] setObject:dataToSave forKey:@"allUsersData"];
[[NSUserDefaults standardUserDefaults] synchronize];

然后将数据读回NSArray:

NSArray *savedData = [[NSUserDefaults standardUserDefaults] valueForKey:@"allUsersData"];

但有更好的方法来保存数据 - 核心数据。 您可以在此处阅读有关Core Data的更多信息以及保存数据的方法:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/index.html

答案 1 :(得分:0)

我建议你使用SQLite或Core Data来保存这些细节。如果您的旅行者的详细信息是私人的,NSUserDefaults不是首选,因为NSUserDefaults以二进制格式存储在plist中,没有加密,并存储在您的应用程序目录中。这意味着任何用户都可以在5分钟的时间内修改NSUserDefaults。如果您仍想使用NSUserDefaults,则必须以字典/数组的形式维护旅行者的数据,并将其保存为{ {1}},最后是[[NSUserDefaults standarduserdefaults]setvalue:dictionary/array forkey:travellerId]

相关问题