我用带有字典的 plist 数组填充我的应用程序。字典中键“新鲜度”的值是捆绑图像的名称,用于显示饮料的新鲜度,“level1.png”、“level2.png”、“level3.png”、“level4.png” ”、“level5.png”、“level6.png”或“level7.png”。
我添加了一个 UIStepper,因此用户可以像这样指定饮料的最小和最大新鲜度:
- (void)viewDidLoad
{
[super viewDidLoad];
minImageView.image = [UIImage imageNamed:@"level1.png"];
maxImageView.image = [UIImage imageNamed:@"level7.png"];
}
- (IBAction)minStepperValueChanged:(id)sender {
double stepperValue = minStepper.value;
minImageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"level%.f.png", stepperValue]];
maxStepper.minimumValue = minStepper.value;
minStepper.maximumValue = maxStepper.value;
minLabel.text = [NSString stringWithFormat:@"From level %.f", stepperValue];
}
- (IBAction)maxStepperValueChanged:(id)sender {
double stepperValue = maxStepper.value;
maxImageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"level%.f.png", stepperValue]];
maxStepper.minimumValue = minStepper.value;
minStepper.maximumValue = maxStepper.value;
maxLabel.text = [NSString stringWithFormat:@"To level %.f", stepperValue];
}
当searchButtonPressed
被调用时,猜猜我想要发生什么。将具有正确新鲜度级别的对象添加allObjectsArray
到searchResultsArray
。有什么建议可以像这样过滤代码吗?
我正在考虑使用levelsArray
具有所有级别图像路径的可变数组,然后从levelsArray
when中删除低于最小值或高于最大值的对象searchButtonPressed
。
然后将与该数组的剩余对象之一匹配的字典添加到searchResultsArray
. 但是我在这方面已经扭曲了我的大脑,我真的需要一些帮助。非常感谢!
编辑:
我已经这样做了:
-(IBAction)searchButtonPressed:(id)sender{
for(double i=otherCriteriasViewController.minStepper.value;i>1;i--) {
[otherCriteriasViewController.levelsArray removeObject:[NSString stringWithFormat:@"level%.f.png", i-1]];
}
for(double ii=otherCriteriasViewController.maxStepper.value;ii<7;ii++) {
[otherCriteriasViewController.levelsArray removeObject:[NSString stringWithFormat:@"level%.f.png", ii+1]];
}
现在我想添加所有包含levelsArray 对象之一的对象。