NSPredicate CONTAINS[cd] 筛选

原文链接

数组筛选含有中文的方法:

1.
NSString *formatString = [NSStringstringWithFormat:@"(itemName CONTAINS[cd] '%1$@')", str];

[NSPredicatepredicateWithFormat:formatString]
2.
NSPredicate * p = [[NSPredicatepredicateWithFormat:@"(itemName CONTAINS[cd] $str) "]predicateWithSubstitutionVariables:@{@"str":str}];
  • 第一种:str为'是会报错 Unable to parse the format string "(itemName CONTAINS[cd] ''')
  • 第二章:查询成功:itemName CONTAINS[cd] "'"
补充:

%n$m@:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格 %n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0 %n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00

扩展

  • 正则 输入内容必须是数字和字母组合
NSString* number=@"(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,14})$";
    NSPredicate *numberPre = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",number];
BOOL result  = [numberPreevaluateWithObject:self];
  • 不包含在某个结果集里
[NSPredicatepredicateWithFormat:@" NOT (fid in %@) ",@"deaf"]
  • 属性和值参数化
NSPredicate *searchFor = [NSPredicatepredicateWithFormat:@"SELF = %@ AND %K = min(%@)",self, property, property];
  • 复合筛选
[NSCompoundPredicate andPredicateWithSubpredicates:@[[NSPredicate predicateWithFormat:@"age > 25"], [NSPredicate predicateWithFormat:@"firstName = %@", @"Quentin"]]];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,491评论 19 139
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 10,261评论 0 11
  • 在讲高效学习的那本书《刻意练习》当中有一个词是被反复的提到,叫做反馈。意思就是说,学习要真正的有效,一定要有反馈,...
    别停赵越阅读 3,258评论 0 0
  • 我一直都很喜欢旅行。能够背着简单的行囊,自由自在的走在一直想去的那个地方,是件很美好的事情。 小时候,读着语文课本...
    晴天阴天雨天阅读 1,287评论 0 1
  • <1> 十七八岁的时候你喜欢一个人, 可能是因为他穿了一件白色的衬衣 一条牛仔裤,亦或是一双干净的帆布鞋 二十七八...
    我的灵魂要流浪阅读 1,690评论 0 0