我正在创建一个iOS应用程序,其中用户输入学生ID,学生姓和学生姓...然后它存储并在表视图中显示(数据稍后将上传到外部数据库)我走了这个?
NSMutableDictionary
甚至是最好的方法吗?
由于
答案 0 :(得分:2)
如果您尝试使用Model类实现它,那将是更好的选择。这样的事情: -
@interface Student : NSObject
@property (nonatomic, retain) NSString * studentID;
@property (nonatomic, retain) NSString * studentForeName;
@property (nonatomic, retain) NSString * studentSurname;
@end
然后将输入的数据保存到此对象并传输此对象或收集多个条目以显示他的tableview。
此过程将帮助您添加新属性或同时插入数据库。或者在尝试将其发送到服务器时。
还尝试在编码中遵循MVC模式,这将有助于您实现可扩展性。
答案 1 :(得分:1)
如果数据库很大,我建议使用带有CoreData的sqlite。 NSUserdefaults不是用于大数据存储,而是用于诸如用户设置等小事情。您几乎可以在sqlite / core数据上存储所有内容。
答案 2 :(得分:0)
NSDictionary / NSMutableDictionary是众多方法之一。是否是最好的方式取决于你。您还可以将其存储为XML或JSON格式(可能更容易上传到服务器),甚至可以创建自定义类。
无论您选择什么,我都会假设您希望将对象(无论是自定义类,字典还是xml字符串)与其他学生一起存储在数组中。在这种情况下,NSArray / NSMutableArray将是最佳选择。祝你好运!
答案 3 :(得分:0)
取决于您的服务器架构,但NSMutableDictionary通常很好。
例如,如果您使用的是JSON服务器,我会转到NSMutableDictionary,然后转换为NSDATA并发布到JSON服务器。类似的东西:
NSData *postData = [NSJSONSerialization dataWithJSONObject:[YOUR DICTIONARY] options:0 error:&error];
[request setHTTPBody:postData];
如果要在本地保存数据,请使用Core Data。
答案 4 :(得分:-1)
您可以单独存储这些项目,也可以NSDictionary
NSUserDefaults
(不可变的项目)
保存它:
[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:YOURDICTIONARY] forKey:@"MYKEY"];
[[NSUserDefaults standardUserDefaults] synchronize];
将其取回:
NSDictionary *mydictionary = (NSDictionary *)[NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"MYKEY"]];