我正在尝试创建一个类来表示Obj-C程序中的操作小时数。我一直在考虑使用NSDatesComponent来做这件事,但我觉得应该有一种更简单的方法。对于如何做到这一点,有人有什么建议吗?
在核心数据中,我将有一个shop实体,它将具有一个数组的ivar。该数组每周的每一天都有七个条目,每一天的值都是一个表示小时范围的hoursOp对象。9-5,10-6,等等。问题是,我不确定如何创建我的hoursOp类来表示一个小时范围。我正在考虑使用NSDateComponents,但我不确定是否应该费心。目前,我认为hoursOp对象应该包含两个变量:开始时间和结束时间。
此外,由于一个数组条目中可能需要多个hoursOp对象,这就变得复杂了-如果一个shop的操作时间是10-4小时,那么6-8小时该怎么办?因此,它不是保存hoursOp对象的数组,而是一个二维数组,其中每个条目都是一个包含1个或多个hoursOp对象的数组。这有点令人费解,但我相信,一旦我弄清楚如何表示小时数(或者范围本身,如果有人有更好的建议),我就可以让它发挥作用。
发布于 2011-04-30 05:09:52
这就是我最终要做的,只使用了NSDate和NSDateFormatter,而open是在军事时间格式化的NSString。
-(void) setOpeningTimeWithString: (NSString *)open
{
NSDateFormatter * formatFromInput = [[NSDateFormatter alloc] init];
[formatFromInput setDateFormat:@"HH:mm"];
self.openingTime = [formatFromInput dateFromString:open];
[formatFromInput release];
}带给我们的教训是,在只设置每小时组件的情况下使用NSDate对象是完全可以的--其他所有内容都只设置为1970年1月1日,并且不会导致任何问题。
发布于 2011-04-14 07:51:27
很难说实现这一点的“最佳”方法,因为这取决于您对数据做了什么,但是如果您将星期几、打开时间和关闭时间存储在hoursOp对象中,那么您可以拥有一个hoursOp对象的一维数组,这些对象表示商店打开时的时间间隔。
您将失去数组索引和星期几之间的一对一关系,这可能会使一些任务变得更加困难(例如,如果您经常查询该对象的星期六存储时间,您将大量扫描整个数组),否则您将沿着拥有数组的路径前进。
https://stackoverflow.com/questions/5655266
复制相似问题