ios NSPredicate—类似数据库的简易筛选方式

1.正则表达式的使用 -- 判断6-12位字母或数字

NSString *regularExpression =@"^[A-Za-z0-9]{6,12}$";

NSPredicate *regularExpressionResult = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regularExpression];

return [regularExpressionResult evaluateWithObject:self]  ? YES NO;

2.筛选数据模型中是否包含某种条件的数据集合

条件:一个模型数组(allDataArray<User>),模型中包含name(名字)和hobby(爱好)字段,筛选名字包含*a*b*(ab任意位置匹配)或者爱好包含篮球的数据

NSPredicate *pred = [NSPredicate predicateWithFormat:@"name LIKE '*a*b*' OR hobby LIKE '*篮球*'"];(其表达式类似于数据库筛选语句,可参考使用)

或者以参数形式

NSPredicate *pred = [NSPredicate predicateWithFormat:@"name LIKE %@ OR hobby LIKE %@",@"*a*b*",@"*篮球*"];

NSArray *resultArray<User> = [allDataArray filteredArrayUsingPredicate:pred];

resultArray<User>即为最终筛选完符合条件的剩余模型数组

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容