通过比较字符串从Xcode中的NSArray中选择indexOfObject

时间:2014-03-06 13:07:57

标签: ios objective-c nsarray

嗨我在Xcode中有NSarray个值。我需要通过比较字符串值来获取数组indexOfObject。 我的数组值是

 (
    {
    firstName = lord;
    lastname = krishna;
    },
    {
    firstName = priya;
    lastname = amirtha;
    }
 )

如果我在文本字段中键入名字,单击按钮表示姓氏要显示在另一个文本字段中    谢谢。

2 个答案:

答案 0 :(得分:2)

回答问题的标题:

NSString *compareString = @"something";
NSMutableArray *indexesOfMatches = [[NSMutableArray alloc]init];

for (NSString *string in theArray) {

   if ([string isEqualToString:compareString]) {
       NSNumber *index = [[NSNumber numberWithInterger:[theArray indexOfObject:string]];
       [indexOfMatches addObject:index];
    }
}
    //indexOfMatches will now contain NSNumber objects that represent the indexes of each of the matching string objects in the array

我认为使用NSDictionary会更好。然后,您可以简单地将名字和姓氏保留为键值对。

NSDictionary *names = @{@"lord" : @"krishna", @"priya" : @"amirtha" };

然后,当你得到第一个名字时,你可以为键做值:

NSString *firstName = @"lord";
NSString *lastName = [names valueForKey:firstName];

答案 1 :(得分:0)

firstNameArray lastNameArray 存储为可变数组NSMutableArray

使用Fast Enumeration。假设数组是您提供的数组

for (NSDictionary *item in array) {
        [firstNameArray addObject:[item objectForKey:@"firstName"]];
        [lastNameArray addObject:[item objectForKey:@"lastName"]];
    }

firstNameTextField中输入数据后,点击按钮

按钮操作方法实现

-(IBAction)btnClicked:(id)sender {
  NSInteger index = [firstName indexOfObject:[firstNameTextField text]];
  [lastNameTextField setText:[lastName objectAtIndex:index]];
}