您的位置:首页 > 产品设计 > UI/UE

valueForKeyPath 的使用(真心不知道啊)

2015-10-22 18:56 357 查看
1
NSArray
*testArray = [NSArray arrayWithObjects:@
"2.0"
,
@
"2.3"
,
@
"3.0"
,
@
"4.0"
,
nil];
2
3
NSNumber
*sum = [testArray valueForKeyPath:@
"@sum.floatValue"
];
4
5
NSNumber
*avg = [testArray valueForKeyPath:@
"@avg.floatValue"
];
6
7
NSNumber
*avg = [testArray valueForKeyPath:@
"@max.floatValue"
];
8
9
NSNumber
*avg = [testArray valueForKeyPath:@
"@min.floatValue"
];


valueForKeyPath计算求和、平均值、最大、最小

在检索NSArray的时候,通常可以利用循环把里面的对象一个一个比较找出目标。另外也可以通过Key-Value的方法找出对象。

例如有下面这么一个Array:

(

{

city = “Beijing”;

country = “China”;

},

{

city = “Tokyo”;

country = “Japan”;

},

{

city = “New York”;

country = “U.S.”;

}

)

通常可以通过循环来找出对象,如下:

NSDictionary *resultDic = nil;

for(NSDictionary *dic in array){

if([[dic objectForKey:@"city"] isEqualToString:@”Beijing”] ){

resultsDic = [dic retain];

break;

}

}

也可以通过key-value的方法来搜索:

[array valueForKeyPath:@"city"];

上述代码会返回:

(

“Beijing”,

“Tokyo”,

“New York”

)

然后利用如下的代码获取array的index:

[[array valueForKeyPath:@"city"] indexOfObject:@”Beijing”];

然后用取得的index获取对象就可以:

[array objectAtIndex:[[array valueForKeyPath:@"city"] indexOfObject:@”Beijing]];

------------------------------------------------------------------------------------------------------------------------------------

NSMutableDictionary *dic=[NSMutableDictionary dictionary];

[dic setObject:@"v1" forKey:@"k1"];

[dic setObject:@"v2" forKey:@"k2"];

[dic setObject:@"v3" forKey:@"k3"];

NSArray *array=[NSArray arrayWithObjects:@"2",@"3",@"4",@"5",nil];

[dic setObject:array forKey:@"k4"];

id obj=[dic valueForKeyPath:@"k4.@sum.floatValue"];

NSLog(@"%@",[obj description]);//==14

找不到出处 从此处的来:http://blog.csdn.net/binyanye1/article/details/43413333
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: