核心数据 nspredicate NSInvalidArgumentException
coredata nspredicate NSInvalidArgumentException
下面的谓词格式有什么问题?
if (devices && devices.count > 0 && ![tf_Search.text isEqualToString:@""]) {
NSString* strSearch = [NSString stringWithFormat:@"%@", tf_Search.text];
NSPredicate* preFilter =
[NSPredicate predicateWithFormat:@"(dRIV_NAMESURNAME CONTAINS[cd] %1$@) || (vEHI_PLATE CONTAINS[cd] %1$@)",
strSearch];
devicesFitered = [devices filteredArrayUsingPredicate:preFilter];
}
devicesFiltered 数组不为空并且有 4 个核心数据设备实体。
dRIV_NAMESURNAME 和 vEHI_PLATE 是实体字段。 NSString.
它给出>“'NSInvalidArgumentException',原因:‘无法解析格式字符串’错误
如果我像下面两种格式一样单独使用它们,没问题
@"(dRIV_NAMESURNAME CONTAINS[cd] %@)" > 没问题
或
@"(vEHI_PLATE CONTAINS[cd] %@)" > 没问题
是关于 %1$@ 吗?
在 objc 中是否不可能像在 cSharp "{1} asdas da {1} sdfs {2}" 中那样处理输入"
正确的格式是什么?
不允许%1$@。最简单的解决方案就是重复 strSearch
参数:
NSPredicate* preFilter = [NSPredicate predicateWithFormat:@"(dRIV_NAMESURNAME CONTAINS[cd] %@) || (vEHI_PLATE CONTAINS[cd] %@)", strSearch, strSearch];
如果你有一个很长的谓词和很多重复的参数,你也可以考虑使用 NSPredicate
的 predicateWithSubstitutionVariables
方法。见 Apple docs.
下面的谓词格式有什么问题?
if (devices && devices.count > 0 && ![tf_Search.text isEqualToString:@""]) {
NSString* strSearch = [NSString stringWithFormat:@"%@", tf_Search.text];
NSPredicate* preFilter =
[NSPredicate predicateWithFormat:@"(dRIV_NAMESURNAME CONTAINS[cd] %1$@) || (vEHI_PLATE CONTAINS[cd] %1$@)",
strSearch];
devicesFitered = [devices filteredArrayUsingPredicate:preFilter];
}
devicesFiltered 数组不为空并且有 4 个核心数据设备实体。
dRIV_NAMESURNAME 和 vEHI_PLATE 是实体字段。 NSString.
它给出>“'NSInvalidArgumentException',原因:‘无法解析格式字符串’错误
如果我像下面两种格式一样单独使用它们,没问题
@"(dRIV_NAMESURNAME CONTAINS[cd] %@)" > 没问题
或
@"(vEHI_PLATE CONTAINS[cd] %@)" > 没问题
是关于 %1$@ 吗?
在 objc 中是否不可能像在 cSharp "{1} asdas da {1} sdfs {2}" 中那样处理输入"
正确的格式是什么?
不允许%1$@。最简单的解决方案就是重复 strSearch
参数:
NSPredicate* preFilter = [NSPredicate predicateWithFormat:@"(dRIV_NAMESURNAME CONTAINS[cd] %@) || (vEHI_PLATE CONTAINS[cd] %@)", strSearch, strSearch];
如果你有一个很长的谓词和很多重复的参数,你也可以考虑使用 NSPredicate
的 predicateWithSubstitutionVariables
方法。见 Apple docs.