1. 項(xiàng)目需求
? 有一個(gè)模型數(shù)組arr, 其中模型model中有個(gè)字段num, 我需要找出所有模型中最大的一個(gè)
2. 解決方案分析
? 我們第一印象肯定是遍歷數(shù)組, 取出模型, 然后在取出num字段, 然后進(jìn)行比較, 取出最大值. 但是本文, 就要另辟蹊徑, 用一個(gè)更優(yōu)雅的方法兩行代買搞定
3. 代碼
// 通過(guò)kvc方式取出num
NSArray *temArr = [arr valueForKeyPath:@"num"];
// 這步是重點(diǎn),直接取出最大值
CGFloat maxNum = [[temArr valueForKeyPath:@"@max.integerValue"] integerValue];
4. 注意事項(xiàng)
? 如果你的模型中的num不是對(duì)象, 那么第一行代碼就會(huì)直接崩掉, 因?yàn)榛A(chǔ)類型的數(shù)是不能放到oc數(shù)組中的 , 所以, 建立模型的時(shí)候一定要用NSNmuber類型的num字段, 這樣才能放入temArr數(shù)組, 當(dāng)然如果你直接擁有一個(gè)裝有NSNmuber類型的數(shù)組, 直接執(zhí)行第二步, 就可以獲得組大值.
5. 擴(kuò)展
? 仿照上面的用法還可以獲得數(shù)組中的最小值, 平均值等的 key值如下,
@”@max.floatValue”//(獲取最大值),
@”@min.floatValue”//(獲取最小值),
@”@avg.floatValue” //(獲取平均值),
@”@count.floatValue”//(獲取數(shù)組大小)
好了這次就總結(jié)到這里, 希望看到此頁(yè)的你擼碼愉快!!!!!!