保存date和价值的正确结构

我正在尝试保存用户信息并将其显示到UITableViewCell中,如下所示:

(date) – (价值)

喜欢:

(12/12/2014) – (240磅)

我不确定使用什么结构types。 我需要保存2个不同的对象(上面描述的nsdate和nstring值),并能够通过键(date和值)遍历它们,以显示uitableview中每个对象的文本。

是不是NSDictionary你在找什么? 例:

 NSDictionary *myKeys = [[NSDictionary alloc] initWithObjectsAndKeys: [NSDate date], @"date", [NSNumber numberWithUnsignedInt:240], @"weight", nil]; 

注意命令“对象和键”。 在这里,我使用@"date"@"weight"作为键名称。 然后你可以通过执行来访问对象:

 myKeys[@"weight"] 

要么

 myKeys[@"date"] 

如果你想有多个条目相关的date和权重,你可以使用一个NSArrayNSDictionaries

在提供更多的上下文之后进行更新:如果用户需要logging某些内容,则需要使用Core Data。 核心数据实体的工作方式与NSDictionary非常相似,但实际上NSManagedObject包含在NSManagedObjectContext 。 你应该创build一个具有两个属性的实体:date和权重。

的NSDictionary
NSDictionary 。 字典与数组类似,但允许您存储对象和键。 字典允许您将特定的键分配给对象,然后从键中检索对象。 以下是来自苹果的说明:

NSDictionary类将编程接口声明为pipe理键和值的不可变关联的对象。 当你需要一个方便有效的方法来检索与任意键相关的数据时,使用这个类或它的子类NSMutableDictionary。 NSDictionary创build静态字典,NSMutableDictionary创builddynamic字典。

格式化
例如,您可以保存重量和date的字典(见下文),然后使用date键(或反之亦然)检索重量对象。

  Key | Object -----------|---------- 12/12/2014 | 240 lbs 10/08/2014 | 250 lbs 09/25/2014 | 262 lbs 

在这里,您需要将键(date)保存为NSDate对象,将对象(重量)保存为NSNumber 。

保存和设置
如何设置一个NSDictionary? 像这样:

 // A generic NSDictionary setup NSDictionary *dictionary = @{@"key": @"object", @"key2": @"object2"}; // An NSDictionary setup for NSDates and NSNumbers NSDictionary *dictionary = @{[NSDate date]: [NSNumber numberWithInteger:240]}; /* There are hundreds of ways to format and use an NSDictionary. You could even have multiple dictionaries in an NSArray. Or you could use an NSMutableDictionary and continue to add entries. */ 

阅读和检索
当UITableView调用其数据源来填充行时,从字典中提供内容。 您可以使用键或索引访问内容。

以下是如何使用date键来检索权重条目的方法:

 NSNumber *weight = [yourDictionary objectForKey:@"keyName OR NSDate object"];