- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用此代码在我的表格 View 中进行搜索:
for (Actor *actorz in arr)
{
NSComparisonResult result = [actorz.actorNaam compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:[actorz.actorNaam rangeOfString:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)]];
if (result == NSOrderedSame)
{
[self.filteredListContent addObject:actorz];
}
}
现在我想知道如何不仅可以将 searchText 与 actorz.actorNaam 进行比较,还可以将其与 actorz.actorBeschrijving 进行比较?所以我想将 searchText 与两个字符串进行比较..
最佳答案
NSString
的搜索方法返回一个 NSRange
,如果没有找到字符串,则位置设置为 NSNotFound
。
因此,您可以通过验证结果位置不是 NSNotFound
来检查是否已找到字符串。这听起来可能有点倒退,但逻辑是可靠的(可以说是两个否定)。
NSRange nameResult = [actorz.actorNaam rangeOfString:searchText options:NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch];
NSRange descrResult = [actorz.actorBeschrijving rangeOfString:searchText options:NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch];
if ( nameResult.location != NSNotFound || descrResult.location != NSNotFound ) {
[self.filteredListContent addObject:actorz];
}
请注意,此代码段将查找包含搜索字符串的名称,而不仅仅是名称相等。您可能想使用原始代码更改它。您当然必须删除 nameResult,因为它是多余的:
NSComparisonResult result = [actorz.actorNaam compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:[actorz.actorNaam rangeOfString:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)]];
NSRange descrResult = [actorz.actorBeschrijving rangeOfString:searchText options:NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch];
if ( result == NSOrderedSame || descrResult.location != NSNotFound ) {
[self.filteredListContent addObject:actorz];
}
不过,还有一个更简单的方法。考虑使用谓词:
NSPredicate *actorPred = [NSPredicate predicateWithFormat:@"actorNaam contains[cd] %@ OR actorBeschrijving contains[cd] %@", searchText, searchText];
self.filteredListContent = [arr filteredArrayUsingPredicate:actorPred];
关于objective-c - NSComparisonResult,如何比较一个 searchText 和多个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14893765/
我在我的 robotium 测试用例中使用 solo.searchText 函数。我将文本作为“$ testdata”传递以进行搜索。但即使屏幕上有文字,它也不会检测到文字。在使用 solo.sear
好的,我会尽力解释这一点。在 Google 的 AppMaker 中,我在主页中放置了一个搜索栏,并且我几乎完全按照 :SearchText 复制了合作伙伴管理。唯一的区别是在我的服务器端代码中我将其
我有一个奇怪的情况:在屏幕上,我可以单击以下字符串:“1 年基本许可证 ($15.00)” 但是下面的代码让我有些头疼:assertTrue(solo.searchText("1 年基本许可 ($15
我正在使用 robotium 来测试一个 android 项目。我有一个测试用例,我需要在其中测试一条由特殊字符组成的消息是否正确发布。所以我创建了一个由特殊字符组成的常量: public stati
现在我正在使用以下内容 let data = ["New York, NY", "Los Angeles, CA" . . .] var filteredData: [String]! filtere
我尝试使用 |filter 过滤数据在 ng-repeat 指令中。 ng-repeat="item in transactions |filter:searchText" 交易 是包含数据的数组,
我正在使用此代码在我的表格 View 中进行搜索: for (Actor *actorz in arr) { NSComparisonResult result = [actorz.
我正在使用此代码在我的表格 View 中进行搜索: for (Actor *actorz in arr) { NSComparisonResult result = [actorz.
在 vue.js 中如何一个 filterBy 多个属性? 考虑以下数据结构。 new Vue({ el: body, data: { items: [ {name: 'thi
我在使用 Robotium 的 searchText() 函数时遇到问题。 我正在搜索这个字符串: Service Activation Wizard (Step 2) 我在字符串 xml 中定义了它
我无法将默认值设置为 ng-model="searchText"。这是我正在使用的代码 谁能帮我解决这个问题? 最佳答案 第一个解决方案:是简单地在 Controller 中初始化 searchTe
这不是一个问题,而是我对在互联网上找不到解决方案的问题的回答。 我在清除 MVVM Silverlight 应用程序中的 SearchText 时遇到问题。我可以清除 SelectedItem 和 T
我已经搜索了几个小时,但看不到解决方案...我正在使用输入到 UISearchBar 中的文本来过滤自定义对象数组,以更改下面表格 View 中的数据。经过一番调试后,我找到了问题的根源: func
我正在尝试断言文本“abcd:移至历史记录”。所以我的代码是这样的: assertTrue("消息未显示",solo.searchText("abcd : 移至历史记录")); 虽然屏幕上显示消息“a
我们最近从 Protractor 4.0.14 升级到 5.3.0,但遇到错误。我们的测试正在做类似的事情: element.all(by.css('some locator')).all(by.cs
我使用 angular.js (ng-model="searchText") 创建了一个可通过输入进行搜索的列表。单击列表元素,您可以使用 {{selected | JSON}}。单击列表项时,我想将
我是一名优秀的程序员,十分优秀!