0

我有一个人对象,它具有该人的不同电话号码的NSString属性firstname, lastname,birthdayNSMutableDictionary

我在NSMutableArraynamed中添加了不同的 person 对象personArray

4

3 回答 3

1

尝试在. _ NSArray像这样的东西:

return [personArray[[personArray indexOfObjectPassingTest:^ (id obj, NSUInteger index, BOOL stop) {
    return [lastName isEqualToString:[obj lastName]];
}]] phoneNumber];

你明白了。

于 2013-09-13T21:47:40.257 回答
0

你应该可以这样做:

-(NSArray *) phoneNumberFor:(NSString *)lastName{
NSInteger indx = [self.personArray indexOfObjectPassingTest:^BOOL(Person *aPerson, NSUInteger idx, BOOL *stop) {
    return [aPerson.lastname isEqualToString:lastName];
}];
if (indx != NSNotFound) {
    return [self.personArray[indx] phoneNumbers].allValues;
}else{
    return nil;
}

}

在此示例中,我假设一个名为 personArray 的数组属性、一个用于您的 person 对象的类名“Person”以及一个名为 phoneNumbers 的可变字典。我还假设字典包含多个键和值,其中所有值都是电话号码。

于 2013-09-14T00:10:03.063 回答
0

您可以从给定姓氏的数组中获取对象,如下所示:-

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"lastname == '%@'", lastname];
NSArray *foundPersonArray = [personArray filteredArrayUsingPredicate:predicate];
NSLog("found person object = %@",foundPersonArray);

但是,如果您想从数组中搜索多个具有相同姓氏的对象,则可以执行以下操作:-

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"lastname LIKE[c] %@", lastname];
NSArray *foundPersonArray = [personArray filteredArrayUsingPredicate:predicate];
NSLog("found person object = %@",foundPersonArray);
于 2013-09-14T04:42:59.740 回答