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