2017-05-12 7 views
0

Ich versuche, ein Array in einer Tabellenansicht zu drucken. Das einzige Problem ist das Array (numbersWithCreationDate) vom Typ [(Int,String)]. Wie kann ich numbersWithCreationDates hier arbeiten? So kann der Text gedruckt werden. Es sagt, das funktioniert nicht, weil es nur eine Zeichenfolge aufnehmen kann.Convert (Int, String) in String, um das Array zu drucken

cell.textLabel?.text = numbersWithCreationDates[indexPath.row] 
+1

Bitte zeigen Sie die Deklaration des Arrays vom Typ 'int, String' an. – shallowThought

+0

Funktioniert diese Hilfe var numbersWithCreationDates = [(Int, String)]() –

+2

Sie haben also ein Array von Tupeln. Sie sollten Ihre Frage bearbeiten, um dies klar zu sagen, und den Code aus Ihrem Kommentar direkt in Ihre Frage einfügen. –

Antwort

1

das Tupel Get:

// Get the tupel at index of the current row 
let tupel = numbersWithCreationDates[indexPath.row] 

Holen Sie sich das string:

// Get the second value of the tupel, the string value ... 
let string = tupel.1 
cell.textLabel?.text = string 
+0

Fehlermeldung Kommende Staaten können nicht Initialisierer für den Typ 'String' mit einer Argumentliste vom Typ '(int, String)' –

+0

Aktualisierte Antwort entsprechend aufrufen. – shallowThought

+0

Wird dies alle Einträge im Array erhalten. Es ist tuple.1 –

0

Sie müssen es in einen String-Datentyp konvertieren.

Versuchen Sie folgendes:

cell.textLabel?.text = String(numbersWithCreationDates[indexPath.row])

Erläuterung:

UITableViewCell besteht aus UILabel. Die text Eigenschaft von UILabel erwartet eine String, während Sie eine Number (oder Int) übergeben. Wenn Sie String Initialisierung aufrufen, konvertiert es Number in String, die von text Eigenschaft von UILabel erwartet wird.

+0

Fehlermeldung kommende Zustände können den Initialisierer für den Typ 'String' nicht mit einer Argumentliste vom Typ '(int, String)' aufrufen –

0

Wenn Sie nur einen Teil des Tupels verwenden oder es auf eine bestimmte Art und Weise formatieren möchten, können Sie die Teile unter Verwendung von .0 und .1 trennen. Zum Beispiel:

cell.textLabel?.text = "Number: \(numbersWithCreationDates[indexPath.row].0) Date: 
\(numbersWithCreationDates[indexPath.row].1)"