用於過濾集合的條件物件NSPredicate

2021-06-21 21:54:53 字數 1195 閱讀 8904

nspredicate-指定過濾條件,用來在記憶體中過濾集合物件

假如有乙個集合物件nsmutablearray ,而你想通過輸入乙個條件而得到滿足條件的物件,那麼可以使用nspredicate來進行過濾。

例:nsmutablearray *mutablearray = [nsmutablearray arraywithobjects :@"andy", @"bike", @"beer", @"candy",nil];

1、從這個可變陣列中查詢其中某個字串帶有「k」的內容:

nspredicate *spredicate = [nspredicate predicatewithformat:@"self contains[c]  'k'"];

nsmutablearray *newmutablearray  =  [mutablearray filterusingpredicate:spredicate];

//這個newmutablearray 就是滿足條件,字串物件中包含了k的字元的集合。

注意,在這個裡面,這裡面是在nsmutablearray中進行過濾,那麼返回的就是nsmutablearray,如果是在nsarray中進行過濾,那麼返回的就是nsarray物件。

還有"self contains[c]  'k'",self表示要查詢集合中物件,contain[c]表示包含字串,其中c是不區分大小寫的。這個有點像sql語句或是hql。

如果在這個可變陣列中,存放的不是字串,而是乙個物件,物件包含兩個字段,乙個name,乙個description,那麼要查詢name中包含k字串的,要怎麼寫呢?

nspredicate *spredicate = [nspredicate predicatewithformat:@"self.name contains[c]  'k'"];

self.name表示查詢集中中物件的name欄位。

2、查詢某個字串物件前面包含b的內容

nspredicate *spredicate = [nspredicate predicatewithformat:@"self beginswith[c]  'k'"];

像這個條件查詢,好像還有很多種用法,比如比較某個欄位的大小和範圍之類的,後續待進。

可用的過濾條件語法,請參考

DataFrame的條件過濾

series向量的操作 from pandas import read csv 載入檔案 df read csv scientists.csv print df print type df 得到年齡這一列 age df age print age print print age 100 datafr...

用於可選引數的條件CriteriaBuilder

最近,我在工作中遇到了乙個有趣的挑戰,我需要根據一系列可選字段有條件地查詢資料 也就是說,我需要查詢所要查詢的內容,而無需查詢其他任何內容。使用jpa規範可以輕鬆完成此任務 一旦我確定了 看下面的示例,我將在其中使用資料字段,例如 生日參加者 public specification attende...

jQuery物件的過濾

過濾 在原有的裡面找出一部分 查詢 查詢原有的兄弟父母子孫後代 過濾 子標籤中找 ul.children span eq 1 css background red find後代標籤中找 ul.find span eq 1 css background red parent父標籤中尋找 ul.pare...