問題描述:根據地圖的層級(mapView.zoomLevel),在數組內尋找到最接近這個層級的數值
- (NSInteger)getMinValueShowLevel:(NSArray *)showLevels mapZoomLevel:(CGFloat)mapZoomLevel{
NSInteger suitValue = (int)mapZoomLevel;
NSInteger diffLevel = 9999;
for (NSNumber *showLevel in showLevels) {
NSInteger diffLevelTmp = fabs(mapZoomLevel - [showLevel intValue]);
if (diffLevelTmp < diffLevel) {
diffLevel = diffLevelTmp;
suitValue = [showLevel intValue];
}
}
return suitValue;
}
注:代碼中
showLevels:存有數值對象,如: showLevels = @[@(12), @(7), @(9)];
suitValue:找到的最合適的值
diffLevel:層級差
mapZoomLevel:參照層級,根據這個層級,找到數組中最接近這個數的值