Raj*_*dal 4 cocoa cocoa-touch nsdictionary nsdate core-foundation
是否可以在NSDictionary中添加NSDate作为键和一些数组?
我没有任何要求将字典写入磁盘 - 归档或取消归档,就像这个人需要它一样:NSDictionary使用NSDates作为密钥
但是,为什么我希望将NSDate作为键特别添加,以便我可以从字典中获取所有键并进行一些计算,例如从一个范围内获取日期.
具有相同日期值的两个对象在创建时是否共享相同的内存?
是否可以将NSDate作为关键?此外,我可能会面临这个假设的其他问题?
谢谢,
拉吉
编辑: 发布我的问题后,我刚刚写了一个示例代码:
NSDateComponents *dateComps = [[NSDateComponents alloc] init];
[dateComps setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[dateComps setDay:1];
[dateComps setMonth:1];
[dateComps setYear:2012];
NSDate *date1 = [[NSCalendar currentCalendar] dateFromComponents:dateComps];
NSDate *date2 = [[NSCalendar currentCalendar] dateFromComponents:dateComps];
NSLog(@"Date 1 = %x, Date 2 = %x", date1, date2);
输出:
Date 1 = 7945610, Date 2 = bd03610
但是,NSDictionary的关键比较是否将这两个NSDate对象解释为不同?
另一个编辑:
另外,如果我应该使用NSDateFormatter将NSDate转换为NSString,我无法直接检查范围内的日期.我将不得不执行以下步骤:
那么,还有更好的方法吗?
是的,NSDate对象可以用作键NSDictionary- 只要它支持NSCopying协议,任何对象类型都可以用作键.键使用isEqual:而不是使用指针值进行比较.有关NSDictionary更多详细信息,请参阅文档的"概述"部分.
| 归档时间: | 
 | 
| 查看次数: | 5053 次 | 
| 最近记录: |