我正在尝试以最简单的方式用几分钟和几小时填充我的选择器视图。我正在实现一个自定义选择器,因此将UIDatePicker
的模式设置为UIDatePickerModeTime
成为不可能。
iOS中是否有可用的函数来检索数据集,还是我只需要用for循环分别用0-12
(12小时制)和0-60
的小时和分钟分别用硬编码值初始化数组,就可以了?
我目前正在像这样填充数组:
#pragma mark - Lazy Loading
-(NSArray *)hourValues{
if(!_hourValues){
NSMutableArray *hours = [[NSMutableArray alloc] init];
for(int i = 0; i < 12; i++){
[hours addObject:[NSNumber numberWithInt:i]];
}
_hourValues = hours;
}
return _hourValues;
}
-(NSArray *)minuteValues{
if(!_minuteValues){
NSMutableArray *minutes = [[NSMutableArray alloc] init];
for(int i = 0; i < 60; i++){
[minutes addObject:[NSNumber numberWithInt:i]];
}
_minuteValues = minutes;
}
return _minuteValues;
}
-(NSArray *)amPmValues{
if(!_amPmValues){
_amPmValues = @[@"am", @"pm"];
}
return _amPmValues;
}
我不喜欢硬编码的值。
理想情况下,我希望能够执行以下操作:
hours = [NSDate NS12HourSetArray];
minutes = [NSDate NS60MinuteArray];
最佳答案
我认为您有3种选择:
NSIndexSet
和NSRange
对象在任意范围内创建索引集。 例如:
NSIndexSet *minutesIndexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 60)];
然后,您可以使UI直接从索引集加载,或者再次枚举索引集并为其索引填充数组。
在这两种方式中,您最终要做的是遍历循环以手动填充阵列。唯一只做负载的是第一个。