gpt4 book ai didi

ios - 将键作为 predicateWithFormat 中的参数传递给 predicate

转载 作者:可可西里 更新时间:2023-11-01 05:03:18 27 4
gpt4 key购买 nike

这听起来可能很傻,但这里是要断言的数据:

@interface Person

@property NSString *name;
@property NSString *phone;
@property NSString *address;

@end

我有一个 NSPredicate 可以搜索 Person 数组,按名字搜索。通常,我会像这样使用它

NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText];

但是如何使用键(名称)作为参数呢?喜欢

NSString *key = @"name";
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"%@ contains[c] %@", key, searchText];

predicate1 工作正常,但 predicate2 不行。当我使用 lldb 调试时,这两个的不同之处:

po [predicate1 predicateFormat]
name CONTAINS[c] "Eddie"

po [predicate2 predicateFormat]
"name" CONTAINS[c] "Eddie"

问题是:我可以让 predicate2 工作吗?我想将 key 作为参数传递给搜索(名称)...如果可以,如何传递?

最佳答案

来自Predicate Programming Guide

When string variables are substituted into a format string using %@ , they are surrounded by quotation marks. If you want to specify a dynamic property name, use %K in the format string

所以你的谓词应该是

NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"%K contains[c] %@", key, searchText];

关于ios - 将键作为 predicateWithFormat 中的参数传递给 predicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19673849/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com