3
我知道有一個「硬」的方法來做到這一點(並不難,但不是直接)。在UILabel中顯示一個有符號的浮點數
我顯示一個浮動值作爲標籤的百分比方式:
myLabel.text = [NSString stringWithFormat:@"%.1f%%", myFloat];
我想迫使標籤顯示浮動的跡象。當然,如果值是負值,它會自動顯示「 - 」。我知道我能做到這一點使用該類型的方法:
-(NSString *) stringFromFloat: (float) theFloat {
if (theFloat > 0) return [NSString stringWithFormat: @"+%.1f%%", theFloat];
else return [NSString stringWithFormat: @"%.1f%%", theFloat];
}
但是,這將意味着每次我需要顯示浮點值時調用[self stringFromFloat:aFloat];
。我知道使用這種解決方案是「更好」,因爲它降低了重複使用的行數,但如果我的標籤不全都顯示相同的小數位數,則stringFromFloat:
可能會快速增長...
所以我的問題是:有沒有一個「簡單」和標準的方式來做到這一點?像一個NSString格式化器或什麼的?例如,用@"%sign%.1f%%"
之類的東西替換@"%.1f%%"
?
如果沒有什麼直的,就像stringFromFloat:
這樣的最佳解決方案?
謝謝!
好吧,它的效果很好!我用了第一個,它是完美的。只是爲了一般的知識,這個「動作」是如何調用的(具有類似*開關的比較部分)?它看起來像塊,但我不知道如何命名它?非常感謝您的快速回答! – rdurand
@rdurand這是[conditional or ternary operator](http://en.wikipedia.org/wiki/%3F:#C),在Objective C和C/C++/Java/C#中是相同的。它被稱爲「三元」,因爲它需要三個操作數 - 一個條件,一個「如果爲真」表達式,以及一個「如果爲假」表達式。 – dasblinkenlight
非常感謝。我會牢記這一點! :) – rdurand