iOS : NSString Evaluate String Expression

标签 ios objective-c iphone nsstring

我有大型 XML 文件(近 1,27,000 条)银行记录。

在一种情况下,我们需要检查银行名称。例如

if(
        [title isEqualToString:@"ABHYUDAYA COOPERATIVE BANK LIMITED" ] ||
                   [title isEqualToString:@"ABU DHABI COMMERCIAL BANK" ] ||
                   [title isEqualToString:@"AHMEDABAD MERCANTILE COOPERATIVE BANK" ] ){
////Perform certain action
}

目前我们有 XML 结构,我们正在将这些巨大的数据解析为 NSString。所以我在 NSString 对象中得到了上面的示例数据。

如何为上面的例子评估 NSString?在堆栈溢出上发现了很多使用 NSPredicateNSExpression 的示例。但根据我对这些问题的理解,他们将处理数学表达式,例如4/3 * 2 等。我无法使用这些示例处理上述格式。

有没有办法在 NSString 和 if 条件中评估上述格式?

PS - 能够通过将数据转换为数据库来解决上述问题,但寻找字符串格式的 NSString 评估。

最佳答案

如果只是为了让你的表达更好看,而不改变底层逻辑,你可以这样做:

NSArray <NSString *> *bankNames = @[@"ABHYUDAYA COOPERATIVE BANK LIMITED" 
                                    @"ABU DHABI COMMERCIAL BANK",
                                    @"AHMEDABAD MERCANTILE COOPERATIVE BANK"];
if ([bankNames contains:title]) {
    //Perform certain action
}

如果你坚持使用谓词,那么你应该这样做:

NSArray <NSString *> *bankNames = @[@"ABHYUDAYA COOPERATIVE BANK LIMITED" 
                                    @"ABU DHABI COMMERCIAL BANK",
                                    @"AHMEDABAD MERCANTILE COOPERATIVE BANK"];
NSPredicate *containsPredicate = [NSPredicate predicate:@"%K equals %@", @"SELF", title];
BOOl matchesName = [bankNames filteredArrayUsingPredicate:predicate].count > 0;

尽管如此,我不太明白您为什么要这样做。

关于iOS : NSString Evaluate String Expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34873178/

相关文章:

ios - UIDatePicker的默认日期不是今天的默认日期

ios - 如何使用 ionic 框架拨号 USSD

ios - 从具有最大匹配的另一个字符串中查找字符串模式(存储在数组中)

iphone - 事件从 iPhone 删除应用程序时

iphone - 如何在 UIWebView 中进行搜索?

ios - 出现错误 [UIImage mutableCopyWithZone :]: unrecognized selector sent to instance

objective-c - 如何在UIWebView中跳转pdf页面?

ios - 如何在具有缩放填充模式的 tableViewHeader 中为 UIImageView 使用固定高度?

objective-c - CFSetGetCount 崩溃(EXC_BAD_ACCESS)

ios - do-try-catch 多行代码