Проверка значения в NSMutableArray - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть NSMutableArray (contactsArray) с содержимым, как показано ниже.

{({ContactID = ""; RecordID = 45; Number = "";},
{ContactID = 134;RecordID = 47;Number = PNAPYOEMZH;})}

У меня есть независимая переменная, скажем, х. Мне нужно проверить, равен ли x ContactID в массиве

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

вы можете использовать isEqual для проверки вещей между данными массива, попробуйте это

if([[yourArray objectAtIndex:theIndex]valueForKey:@"ContactID"] isEqualToNumber [[yourArray objectAtIndex:theIndex]valueForKey:@"RecordID"])
{
NSLog(@"the contact ID matches the Record ID");
}
else
{
NSLog(@"it doesn't match")
}

, что здесь происходит, если предложения сравнивают объект внутри вашего массива со значением «ContactId» с «RecordID»в данных в индексе или строке "theIndex"

надеюсь, что это поможет

edit: так как вы отредактировали вопрос, чтобы иметь переменную X, вы можете просто изменить второй параметр сравнения на [NSNumbernumberWithInt: x]

если ваш X является строковым типом, вы должны использовать .intValue

0 голосов
/ 15 февраля 2012

Вы можете сделать что-то вроде этого:

NSMutableArray *contactsArray = <the_array>;
int x = <the_value_to_check_against>;

[contactsArray filterUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id obj, NSDictionary *bindings){
    return ([[obj objectForKey:@"ContactID"] intValue] == x);
}]];

или измените предикат на:

[contactsArray filterUsingPredicate:[NSPredicate predicateWithFormat:@"self.ContactID == %@", [NSNumber numberWithInt:x]]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...