在 Swift 中将 Int 解包为 String

Unwrapping a Int to String cast in Swift

我正在从我的 plist 中收集一个 NSNumber,我想在 String 中打印它:

let tijd = String(self.sortedHighscores[indexPath.row]["Tijd"]!)
cell.detailTextLabel?.text = "\(tijd) seconden"

但在模拟器中我看到打印:例如 Optional(120) seconden。 我该如何解决这个问题?我试过解包 tijd,但这会导致编译器出错,告诉我删除 !.

试试这个:

 var highscore : NSNumber =  self.sortedHighscores[indexPath.row]["Tijd"] as! NSNumber
 var a : String = String(format:"%d",highscore.integerValue)
 cell.detailTextLabel.text = a

tijd 是可选的,你需要打开它,但你也应该检查它是否有值。

if let foo = tijd {
    cell.detailTextLabel?.text = "\(foo) seconden"
}

如果您知道它总是有一个值,"\(tijd!) seconden" 应该也可以。