objective-c - 使用 NSString 作为搜索项来查找 NSArray 项目索引

标签 objective-c ios nsstring nsarray

这似乎是一件很容易解决的事情,但到目前为止我还没有想出一个简单的解决方案。

我有一个 NSArray,其中包含一些如下所示的字符串:

NSArray *items = [NSArray arrayWithObjects:@"page_standard", @"google_map_location", @"comment", @"folder", nil];

我提供了一个搜索词,但格式略有不同:

NSString *searchTerm = @"Standard Page Format";

另一个术语可能是:

NSString *searchTerm = @"Location Google Map";

因此,即使我的 searchTerm 的格式与数组中的 page_standard 字符串的格式不同,我仍然希望它匹配,并且能够返回匹配。

注意:这不是用户可编辑的搜索。相反,这些是这些代码的“代码”和“友好名称”。我需要将两者匹配,以便“友好名称”可以找到匹配的“代码”。

这可能吗?

最佳答案

如果预先知道术语集,并且用户从列表而不是自由格式文本条目中进行选择,则只需创建一个字典,将“友好”术语映射到内部术语:

NSDictionary *internalTermForFriendlyTerm = @{
    @"Standard Page Format": @"page_standard",
    @"Location Google Map": @"google_map_location",
    // etc.
};

...

NSString *internalTerm = internalTermForFriendlyTerm[searchTerm];

您可以将字典存储在属性列表文件中,以便在运行时轻松更新。

关于objective-c - 使用 NSString 作为搜索项来查找 NSArray 项目索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13500879/

相关文章:

iphone - 将字符串转换为 int-objective c

iphone - 正确地将 NSString 转换为 NSnumber

ios - NSString 到 byte Array,操作它,以及 byte Array 到 NSString

objective-c - 更改 MKMapKit MKAnnotation 子类中的图像

iphone - UIScrollView - 确定滚动停止的位置

ios - 如何使用 CGAffineTransform Identity 进行 View Controller 转换

ios - Swift - 根据日期数组对不同的数组进行排序

ios - 为什么 Auth.auth().currentUser?.uid 返回 nil 值?

ios - PIN 更改后连接到外围设备

iphone - 如何在 iPhone 上扩展键盘渐变?