0

下面的代码示例显示了我如何在带有字典的数组的 plist 中搜索“名称”字符串。现在我在视图中添加了两个 UISlider:sliderOne 和 sliderTwo。我想在 searchButtonPressed 时将它们用作第二个标准,这意味着:

resultObjectsArray 现在包含 objectName 包含 nameString 的对象(如示例)并且 objectPrice 介于 sliderOne 和 sliderTwo 的值之间。但如果滑块一的值高于滑块二的值,则跳过此条件。

你能用下面的例子告诉我如何做到这一点吗?价格是 plist 字典中的一个数字(实数),如“99,90”。

-(IBAction)searchButtonPressed:(id)sender{  

     NSString *path = [[NSBundle mainBundle] pathForResource:@"Objects" ofType:@"plist"];
     allObjectsArray = [[NSMutableArray alloc] initWithContentsOfFile:path];

    NSString *nameString = [NSString stringWithFormat:@"%@", [nameTextField text]];

    resultObjectsArray = [NSMutableArray array];
    for(NSDictionary *object in allObjectsArray)
    {
        NSString *objectName = [object objectForKey:@"Name"];
        NSString *objectPrice = [wine objectForKey:@"Price"];

        NSRange range = [objectName rangeOfString:nameString options:NSCaseInsensitiveSearch];
        if(range.location != NSNotFound)
        [resultObjectsArray addObject:object];
    }

谢谢!

4

1 回答 1

1

我想我理解你的问题,在这种情况下,仅仅改变条件还不够

if (range.location != NSNotFound)
    [resultObjectsArray addObject:object];

BOOL priceConditionGood = YES;
if (sliderOne.value <= sliderTwo.value && (objectPrice.floatValue < sliderOne.value || objectPrice.floatValue > sliderTwo.value))
    priceConditionGood = NO;
if (range.location != NSNotFound && priceConditionGood)
    [resultObjectsArray addObject:object];

让我知道这是否适合你!

于 2012-08-02T23:19:17.640 回答