// 1、使用kvc
NSArray *array = @[@"tom",@"lily",@"Games"];
NSLog(@"%@",[array valueForKeyPath:@"length"]);
NSLog(@"%@",[array valueForKeyPath:@"@max.length"]);
NSArray *array1 = @[@1, @2, @2, @2, @2, @3,@7,@8];
//先取不重復(fù)的子集,然后計算總和
//注意@distinctUnionOfObjects和@sum不能直接在一個keyPath中連接,所以需要兩次調(diào)用valueForKeyPath
NSLog(@"%@",[[array1 valueForKeyPath:@"@distinctUnionOfObjects.self"] valueForKeyPath:@"@sum.self"]);
// 2、使用NSPredicate
NSArray *arr2 = @[@"apple",@"pera",@"banana"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"length > 4"];
NSLog(@"%@",[arr2 filteredArrayUsingPredicate:predicate]);
NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"SELF ENDSWITH 'e' OR length > 5"];
NSLog(@"%@",[arr2 filteredArrayUsingPredicate:predicate1]);
NSArray *arr3 = @[@"pig",@"beautiful",@"sunday",@"four"];
NSPredicate *predicate2 = [NSPredicate predicateWithBlock:^BOOL(id _Nullable evaluatedObject, NSDictionary<NSString *,id> * _Nullable bindings) {
NSString *str = evaluatedObject;
return [str hasSuffix:@"y"] || str.length > 5;
}];
NSLog(@"%@",[arr3 filteredArrayUsingPredicate:predicate2]);
// 3.使用集合本身的passingTest相關(guān)方法
NSIndexSet *indexSet = [arr3 indexesOfObjectsWithOptions:NSEnumerationReverse passingTest:^BOOL(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSString *str = obj;
if ([str hasSuffix:@"y"] || str.length > 5) {
// *stop = YES;
return YES;
}
return NO;
}];
NSLog(@"%@",[arr3 objectsAtIndexes:indexSet]);
使用KVC, NSPredicate, passingTest篩選集合
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 前言 在開發(fā)中,我們經(jīng)常會遇到一些需要,讓我們從集合中查找某個值,從集合中過濾想要的內(nèi)容等等,因而我們就需要遍歷集...
- hello!大家好,簡單的自我介紹一下,本人97年的小巨蟹,你們可以喊我張小菊,我是16年暑假做的雙眼皮手術(shù),目前...