首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS 多變量相同邏輯提取方法:封裝為實例方法複用

     編輯:程式設計綜合問答

原始重複代碼

if (hour1cloud <= 5) hour1weather = @"Clear";
else if (hour1cloud <= 25) hour1weather = @"Mostly Clear";
... // hour2, hour3, hour4 同邏輯重複

封裝為方法

- (NSString *)weatherStringFromCloud:(int)cloud {
    if (cloud <= 5) return @"Clear";
    else if (cloud <= 25) return @"Mostly Clear";
    else if (cloud <= 50) return @"Partly Cloudy";
    else if (cloud <= 83) return @"Mostly Cloudy";
    else if (cloud <= 105) return @"Overcast";
    else return nil;
}

調用

hour1weather = [self weatherStringFromCloud:hour1cloud];
hour2weather = [self weatherStringFromCloud:hour2cloud];
hour3weather = [self weatherStringFromCloud:hour3cloud];
hour4weather = [self weatherStringFromCloud:hour4cloud];

優勢

  • **消除重複**,邏輯集中維護。
  • 易於單元測試、修改閾值。
  • 可進一步擴展:傳入 `NSDictionary` 批量處理、返回結構體包含圖標名等。

Swift 版本

func weatherString(fromCloud cloud: Int) -> String? {
    switch cloud {
    case ...5: return "Clear"
    case 6...25: return "Mostly Clear"
    case 26...50: return "Partly Cloudy"
    case 51...83: return "Mostly Cloudy"
    case 84...105: return "Overcast"
    default: return nil
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved