以Objective-C表示小时范围

以Objective-C表示小时范围,objective-c,core-data,nsdate,Objective C,Core Data,Nsdate,我试图创建一个类,它表示Obj-C程序中的运行小时数。我一直在考虑使用NSDatesComponent来实现这一点,但我觉得应该有一种更简单的方法。有没有人对如何做到这一点有什么建议 在核心数据中,我将有一个商店实体,它将有一个ivar,它是一个数组。该数组一周中的每一天都有七个条目,每天的值是一个hoursOp对象,表示小时的范围。9-5、10-6等等。问题是,我不确定如何创建hoursOp类来表示小时范围。我正在考虑使用NSDATE组件,但我不确定是否应该麻烦。目前,我认为hoursOp对象

我试图创建一个类,它表示Obj-C程序中的运行小时数。我一直在考虑使用NSDatesComponent来实现这一点,但我觉得应该有一种更简单的方法。有没有人对如何做到这一点有什么建议

在核心数据中,我将有一个商店实体,它将有一个ivar,它是一个数组。该数组一周中的每一天都有七个条目,每天的值是一个hoursOp对象,表示小时的范围。9-5、10-6等等。问题是,我不确定如何创建hoursOp类来表示小时范围。我正在考虑使用NSDATE组件,但我不确定是否应该麻烦。目前,我认为hoursOp对象应该包含两个变量:开始时间和结束时间


此外,一个数组条目中可能需要多个hoursOp对象,这使问题变得复杂-如果一个商店的营业时间是10-4小时,那么是6-8小时呢?因此,它不是一个包含hoursOp对象的数组,而是一个二维数组,其中每个条目都是一个包含1个或多个hoursOp对象的数组。这有点复杂,但我相信我可以让它发挥作用,一旦我弄清楚如何表示小时或范围,如果有人有更好的建议的话。

很难说实现这一点的最佳方法,因为这取决于你对数据做了什么,但是如果你存储了一周中的某一天,打开时间和关闭时间在hoursOp对象中,可以有一个一维hoursOp对象数组,表示商店打开时的时间间隔


您将失去数组索引与星期几之间的一对一关系,如果您不断查询此对象的星期六存储时间,可能会使某些任务更加困难,例如,您将大量扫描整个数组,但如果不是这样的话,你就要使用数组数组了。

这就是我最后所做的,我只使用了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日,并且不会导致任何问题。

是否需要对一周中的某一天进行编码?什么决议?很公平。这是否意味着我不应该用NSDate来表示小时数?NSDate组件可能有些过分,但时区和分钟等字段也会派上用场——我可能会在使用内置类方面犯错误,即使它的功能超出了我当前的需要。