Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在nsstring中搜索的代码建议_Objective C - Fatal编程技术网

Objective c 在nsstring中搜索的代码建议

Objective c 在nsstring中搜索的代码建议,objective-c,Objective C,我用带有字典的plist数组填充我的应用程序。字典中键“Freshness”的值是一个捆绑图像的名称,用于显示饮料的新鲜度级别,“level1.png”、“level2.png”、“level3.png”、“level4.png”、“level5.png”、“level6.png”或“level7.png” 我添加了一个UIStepper,以便用户可以指定饮料的最低和最高新鲜度,如下所示: - (void)viewDidLoad { [super viewDidLoad]; minImageVi

我用带有字典的plist数组填充我的应用程序。字典中键“Freshness”的值是一个捆绑图像的名称,用于显示饮料的新鲜度级别,“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
处理所有级别图像路径,然后在按下
searchbutton
时,从
levelsArray
中删除低于最小值或高于最大值的对象

然后将与此数组的剩余对象之一相匹配的词典添加到
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]];
}
-(iAction)搜索按钮按下:(id)发件人{
对于(双i=otherCriteriasViewController.minStepper.value;i>1;i--){
[otherCriteriasViewController.levelsRay removeObject:[NSString stringWithFormat:@“level%.f.png”,i-1];
}

对于(double ii=otherCriteriasViewController.maxspepper.value;ii如果我理解正确,您试图解决的问题是根据每个字典中的键过滤字典数组

您可以使用
NSPredicate
来执行此操作

假设您有一个名为“allItems”的NSArray,并且数组中的每个对象都是一个包含键“Freshness”的字典

假设您想要新鲜度为2的所有商品

NSArray *filtered = [allItems filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(Freshness == %@)", @"level2.png"]];

您还可以使用NSPredicates进行大于和小于比较。这只是一个相等的示例。

如果我理解正确,您试图解决的问题是根据每个字典中的键筛选字典数组

您可以使用
NSPredicate
来执行此操作

假设您有一个名为“allItems”的NSArray,并且数组中的每个对象都是一个包含键“Freshness”的字典

假设您想要新鲜度为2的所有商品

NSArray *filtered = [allItems filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(Freshness == %@)", @"level2.png"]];

您还可以使用NSPredicates进行大于和小于比较。这只是一个相等的示例。

我想我想要这样的比较,谢谢您的回答!您能演示如何“循环通过”吗
levelsArray
中的对象是否要添加包含其中一个单词的饮料?请检查我的编辑。我不太确定您现在问的是什么。您能否给出一个示例,以及您希望出现的结果?@ingenspor,我想您误解了Dima编写的内容。新数组经过过滤后,应该包含其中的所有对象新鲜度键等于“level2.png”。没有必要做任何循环。我想我想要这样的东西,谢谢你的回答!你能演示如何“循环通过”吗
levelsArray
中的对象是否要添加包含其中一个单词的饮料?请检查我的编辑。我不太确定您现在问的是什么。您能否给出一个示例,以及您希望出现的结果?@ingenspor,我想您误解了Dima编写的内容。新数组经过过滤后,应该包含其中的所有对象Freshness键等于“level2.png”。不需要做任何循环。