美文网首页iOS文章iOS开发技术分享
高效开发iOS -- 那些不为人知的KVC

高效开发iOS -- 那些不为人知的KVC

作者: A天天涨不停 | 来源:发表于2016-01-21 09:47 被阅读3465次

valueForKeyPath


本篇来讲解一下那些不为人知,也经常被忽略掉,并且很实用的KVC干货小技巧

获取数组里的,最大、最小、平均、求和


 NSArray *array = @[@"1",@"3",@2,@9.5,@"1.2"]; 
NSNumber *sum = [array valueForKeyPath:@"@sum.floatValue"]; 
NSNumber *avg = [array valueForKeyPath:@"@avg.floatValue"]; 
NSNumber *max = [array valueForKeyPath:@"@max.floatValue"]; 
NSNumber *min = [array valueForKeyPath:@"@min.floatValue"];  
NSLog(@"sum:%@",sum); 
NSLog(@"avg:%@",avg);
 NSLog(@"max:%@",max); 
NSLog(@"min:%@",min);

删除重复数据


NSArray *array = @[@"name", @"w", @"aa", @"zxp", @"aa"]; //返回的是一个新的数组
 NSArray *newArray = [array valueForKeyPath:@"@distinctUnionOfObjects.self"]; 
NSLog(@"%@", newArray);

同样可以嵌套使用,先剔除name对应值的重复数据再取值


NSArray *array = @[ @{@"title":@"zxp",@"name":@"zhangxiaoping"}, @{@"title":@"zxp2",@"name":@"zhangxiaoping2"}, @{@"title":@"zxp",@"name":@"zhangxiaoping3"}, @{@"title":@"zxp",@"name":@"zhangxiaoping"}];
//根据name字段,来进行重复删除。
NSArray *newArray = [array valueForKeyPath:@"@distinctUnionOfObjects.name"];
//如果要根据title字段来删除重名的写法为`@distinctUnionOfObjects.title` 
NSLog(@"%@", newArray);
/*
print:( zhangxiaoping3, zhangxiaoping2, zhangxiaoping)是一个字符串数组*/

进行实例方法的调用


NSArray *array = @[@"name", @"w", @"aa", @"ZXPing"]; 
NSLog(@"%@", [array valueForKeyPath:@"uppercaseString"]);

相当于数组中的每个成员执行了uppercaseString方法,然后把返回的对象组成一个新数组返回。既然可以用uppercaseString方法,那么NSString的其他方法也可以,比如[array valueForKeyPath:@"length"]。当然,其他对象的实例方法也可以以此类推来进行调用~!

相关文章

  • 高效开发iOS -- 那些不为人知的KVC

    valueForKeyPath 本篇来讲解一下那些不为人知,也经常被忽略掉,并且很实用的KVC干货小技巧 获取数组...

  • KVC

    iOS 如何使用KVC iOS开发UI篇—Kvc简单介绍 iOS开发系列--Objective-C之KVC、KVO

  • iOS开发技巧系列---详解KVC(我告诉你KVC的一切)

    iOS开发技巧系列---详解KVC(我告诉你KVC的一切) iOS开发技巧系列---详解KVC(我告诉你KVC的一切)

  • KVC

    KVC原理剖析 - CocoaChina_让移动开发更简单 iOS开发底层细究:KVC和KVO底层原理 | iOS...

  • 面试题知识点梳理

    重点KVC、KVOGCDRuntime iOS开发之Runtime——面试解析runloopBlock iOS开发...

  • iOS KVC与 KVO详解

    我们先看KVC KVC KVC(Key-value coding)键值编码,就是指iOS的开发中,可以允许开发者通...

  • iOS KVC和KVO详解

    KVC KVC定义 KVC(Key-value coding)键值编码,就是指iOS的开发中,可以允许开发者通过K...

  • iOS KVC和KVO详解

    KVC KVC定义 KVC(Key-value coding)键值编码,就是指iOS的开发中,可以允许开发者通过K...

  • iOS KVO和KVC详解

    KVC KVC定义 KVC(Key-value coding)键值编码,就是指iOS的开发中,可以允许开发者通过K...

  • iOS KVC和KVO详解

    KVC KVC定义 KVC(Key-value coding)键值编码,就是指iOS的开发中,可以允许开发者通过K...

网友评论

本文标题:高效开发iOS -- 那些不为人知的KVC

本文链接:https://www.haomeiwen.com/subject/pwulkttx.html