NSPredicate 的使用 持續更新

2021-06-21 13:55:13 字數 3314 閱讀 9100

nspredicate

謂詞工具一般用於過濾陣列資料,也可用來過濾coredata查詢出的資料.

1). 支援keypath

2). 支援正規表示式

在使用之前先新建3個類 teacher info address,詳細**如下

info.h

#import

@inte***ce

info : nsobject

@property (nonatomic, strong) nsstring *classnum;

@end

info.m

#import

"info.h

"@implementation

info

@end

address.h

#import

@inte***ce

address : nsobject

@property (nonatomic, strong) nsstring *detailaddress;

@end

address.m

#import

"address.h

"@implementation

address

@end

teacher.h

#import

#import

"info.h

"#import

"address.h

"@inte***ce

teacher : nsobject

@property (nonatomic, strong) nsstring *name;

@property (nonatomic, strong) info *info;

@property (nonatomic, strong) address *address;

@property (nonatomic, assign) nsinteger age;

@end

teacher.m

#import

"teacher.h

"@implementation

teacher

-(instancetype)init

return

self;

}@end

初始化資料並新增進陣列中

//

初始化資料

teacher *teacher1 =[[teacher alloc] init];

teacher1.info.classnum = @"

11班"

; teacher1.address.detailaddress = @"

海淀區"

; teacher1.name = @"

l.y.f.";

teacher1.age = 11

;

teacher *teacher2 =[[teacher alloc] init];

teacher2.info.classnum = @"

12班"

; teacher2.address.detailaddress = @"

立水橋"

; teacher2.name = @"

p.k.";

teacher2.age = 20

; teacher *teacher3 =[[teacher alloc] init];

teacher3.info.classnum = @"

11班"

; teacher3.address.detailaddress = @"

萬盛路"

; teacher3.name = @"

y.x.";

teacher3.age = 22

;

//將資料新增進陣列

nsmutablearray *teachers =[[nsmutablearray alloc] initwithobjects:teacher1, teacher2, teacher3, nil];

開始正式的使用謂詞

[1]比較操作(>,=,<=,=)

[2] 字串常規操作 (beginswith,endswith,contains)

[3] 範圍 (between,in)

@"age between "

@"age in " //這個不確定是什麼

[4] 萬用字元 (like)

注:使用?表示乙個字元,*表示多個字元

[5] 邏輯運算 (and,or,not)

[6] 正規表示式

注:^y.+.$ 以y開頭,以.結尾的字元

謂詞NSPredicate的使用

謂詞是用來為資料新增過濾條件,從而更加精確的找到找到所描述條件的資料。蘋果為我們封裝好了nspredicate類,我們可以很方便的得到我們需要的過濾條件。謂詞的簡單語法總結 比較運算 大於 小於 大於等於 小於等於 等於 不等於 between 左邊的表示式等於右邊的表示式的值或者介於它們之間。右邊...

關於謂詞NSPredicate的使用

關於nspredicate的使用,網上已經有很多文章,有一些很不錯,之前看的就是這篇 點選開啟鏈結 根據自己的使用總結下 我主要是用在對陣列的篩選上,相對迴圈陣列然後自己去匹配,要簡潔得多。而且對於陣列裡面巢狀字典或物件的結構很好。1 nspredicate的構建 nspredicate filte...

謂詞 (NSPredicate)使用詳情

謂詞 更加詳細 判斷是否滿足條件 第一種判斷乙個陣列 array 中滿足條件的 nspredicate predicate nspredicate predicatewithformat age 20 定義謂詞 for person p in array 第二種 nspredicate predic...