0

以下のコード例は、辞書を含む配列を使用してplistの「Name」文字列で検索する方法を示しています。これで、ビューに2つのUISlider(sliderOneとsliderTwo)を追加しました。searchButtonPressedのとき、それらを2番目の基準として使用したいと思います。

resultObjectsArrayには、objectNameにnameStringが含まれているオブジェクト(例のように)が含まれ、objectPriceはsliderOneとsliderTwoの値の間にあります。ただし、sliderOneの値がslider 2の値よりも大きい場合は、この基準をスキップしてください。

以下の例を使用して、これを行う方法を教えていただけますか?価格は、「99,90」のようなplist辞書の数値(実数)です。

-(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 に答える