2015-07-08 2 views
0

Я собирал NSNumber из моего списка свойств, и я хочу, чтобы напечатать что в String:разворачивания Int в строку отлит в Swift

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

Но в симуляторе я вижу напечатал: Optional(120) seconden, например. Как это решить? Я пробовал разворачивать tijd, но это приведет к ошибкам в компиляторе, говорящим мне удалить !.

+0

Сначала вам нужно распаковать, затем преобразовать в строку это дубликат http://stackoverflow.com/questions/24161336/convert-int-to-string-in-swift – ogres

ответ

0

Попробуйте это:

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

Swift String не имеет формата инициализатор, согласно моему автозаполнению? – jbehrens94

+0

перезагрузите xcode plz – iAnurag

+0

Это не помогло, вы уверены, что это не значит, что это 'NSString'? – jbehrens94

-1

tijd является необязательным, вам необходимо разворачивать его, но вы должны проверить, имеет ли это значение, тоже.

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

Если вы знаете, что всегда будет иметь значение, "\(tijd!) seconden" должны работать также.

Смежные вопросы