保存日期和价值的适当结构

时间:2014-03-04 22:11:43

标签: ios objective-c uitableview

我正在尝试保存用户信息并将其显示为UITableViewCell:

(日期) - (价值)

喜欢:

(2014年12月12日) - (240磅)

我不确定要使用的结构类型。我需要保存2个不同的对象(上面描述的nsdate和nstring值),并能够通过键(日期和值)迭代它们,以显示uitableview中每个对象的文本。

2 个答案:

答案 0 :(得分:2)

<强>的NSDictionary
NSDictionary。字典类似于数组,但允许您存储对象和键。字典允许您为对象分配特定键,然后从其键中检索对象。这是直接来自Apple的描述:

  

NSDictionary类声明了对象的编程接口,这些对象管理键和值的不可变关联。当您需要一种方便有效的方法来检索与任意键相关联的数据时,请使用此类或其子类NSMutableDictionary。 NSDictionary创建静态字典,NSMutableDictionary创建动态字典。

<强>格式化
例如,您可以保存权重和日期字典(见下文),然后使用日期键检索权重对象(反之亦然)。

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

在这里,您需要将密钥(日期)保存为NSDate个对象,将对象(权重)保存为NSNumbers

保存和设置
如何设置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调用其数据源来填充行时,提供字典中的内容。您可以使用键或索引访问内容。

以下是使用日期键检索重量条目的方法:

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

答案 1 :(得分:1)

不是NSDictionary您要找的是什么? 例如:

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

注意“对象和键”的顺序。在这里,我使用了@"date"@"weight"作为键名。然后,您可以通过执行以下操作来访问对象:

myKeys[@"weight"]

myKeys[@"date"]

如果您希望有多个与日期和体重相关的条目,则可以NSArray使用NSDictionaries

在您提供更多上下文后更新:如果用户需要记录某些内容,则可以使用Core Data。核心数据实体与NSDictionary的工作方式非常相似,但实际上NSManagedObject包含在NSManagedObjectContext中。您应该创建一个具有两个属性的实体:日期和重量。