2016-12-29 3 views
0

Swift iOSで現在のロケールで1000kgを1トンに変換するにはどうすればよいですか? 入力はkgです。 ストリングが1000トン以上か1000トン未満かに応じて、ストリングをポンドまたはショートトンで出力したいとします。ロケールに応じてスウィフトiOSで現在のロケールで1000ポンドを1ショートトンに変換する方法はありますか?

ただし、デフォルトのロケールがメトリックシステムにあった場合は、メトリックトンに変換する必要があります。 == 0.5メートルトン

私は、次のようなif文よりもはるかに単純な方法があると思います。

例:

let x = Measurement(value=1000, unit:UnitMass.kilograms) 

if locale is metric and value is 1000kg and above{ 
// convert it metric tons 
}else if not metric system{ 
    if x converted lbs and is above 1000lbs and above{ 
     //convert to short tons 
    }else{ 
    //remain in lbs 
    } 
} 

答えて

0

使用Localeデバイスはメートル法を使用するように設定されているかどうかを確認します。残りの部分は比較的単純です:

let kg = Measurement<UnitMass>(value: 1000, unit: .kilograms) 

if Locale.current.usesMetricSystem && kg.value > 1000 { 
    let tons = kg.converted(to: .metricTons) 
} else { 
    let lbs = kg.converted(to: .pounds) 

    if lbs.value > 1000 { 
     let shortTons = lbs.converted(to: .shortTons) 
    } else { 
     // lbs 
    } 
} 
+0

変換の代わりに変換を使用するのはなぜですか? – user805981

+0

@ user805981 hmm、 'convert'は私には非難されていました。しかし、あなたは 'kg 'を' var'とし、 'convert'を使うことができると思います。ソースエディタの不具合だったはずです。好きなものを使いましょう。 – JAL

+0

else if largeの代わりにswitch文をお勧めしますか? – user805981

関連する問題