IOS/objective-C : Search string element with array of objects

标签 ios nsarray nspredicate

作为自动完成框的一部分,我在一组联系人中搜索姓名。但是,当用户从建议列表中选择一个名称后,我需要获取联系人对象数组中的联系人 ID,而不是建议框中出现的名称数组。我一直只处理姓名,因为这是我想在建议框中显示的内容,但也有一系列联系人。

我如何转换下面的代码(可能使用键值)来搜索对象数组而不是名称数组的名称维度,以便跟踪对象的 id。我对数组和键值有点模糊。

//the array being searched looks something like  @[@"John", @"Dave", @"Sam", @"Xian", @"Ahmed", @"Johann"];

//I want to search the names in an array that looks something like:

(
        {
        first = "John";cid = 2;},
        {
        first = "Dave";cid = 44;},
        {
        first = "Xian";cid=99})
//this code works great to search names but I lose track ids. Thank you for any suggestions.

-(void)searchArray: (NSMutableArray*) array forString: (NSString *) term {
    [_contactsSuggested removeAllObjects];      
      NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",term]; 
    NSArray *tempArray = [array filteredArrayUsingPredicate:predicate];
    _contactsSuggested = [NSMutableArray arrayWithArray:tempArray];
    [_autocompleteTableView reloadData];
}

最佳答案

创建一个联系人对象。给它一个 name 属性、一个 id 属性,以及您需要的任何其他属性。然后编写代码来搜索一组 Contact 对象,而不仅仅是一组名称。然后,您可以使用 predicateWithBlock 创建一个谓词来过滤与您的名称属性匹配的项目。

关于IOS/objective-C : Search string element with array of objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41708057/

相关文章:

ios - 将按钮从过滤后的图像重置为原始图像

ios - SKLightNodes 导致 SpriteKit 中的帧速率问题

ios - 从Unity部署到IOS模拟器出现这些Xcode提示/错误正常吗?

ios - 如何使用多个 NSPredicates 进行多个搜索值

objective-c - 使用 NSPredicateEditor 编辑 NSPredicate

ios - 防止弹出手机屏幕

ios - 根据数组字符转换数组格式

objective-c - 数组不显示值

ios - 我可以在 NSManagedObject 子类中用 NSArray 替换 NSSet 吗?

objective-c - NSPredicate 过滤当前时间