web-dev-qa-db-ja.com

Int配列を文字列に変換するにはどうすればよいですか?配列Swift

次のような配列があります。

var arr: [Int] = [1,2,3,4,5]

これを印刷するには、これを次のように変換します。

var newArr: [String?] = ["1","2","3","4","5"]

私を助けてください!前もって感謝します。

32
GJZ

対気速度はあなたに答えを与えました:

var arr: [Int] = [1,2,3,4,5]

var stringArray = arr.map { String($0) }

または、stringArrayを[String?]型にしたい場合

var stringArray = arr.map  { Optional(String($0)) }

この形式のmapステートメントは、Arrayタイプのメソッドです。配列内のすべての要素で指定されたクロージャーを実行し、それらすべての呼び出しの結果を新しい配列にアセンブルします。 1つの配列を結果配列にマッピングします。渡すクロージャーは、出力配列内のオブジェクトのタイプのオブジェクトを返す必要があります。

より長い形式で書くことができます:

var stringArray = arr.map {
  (number: Int) -> String in
  return String(number)
}

編集:

Int値をカスタムテーブルビューセルにインストールするだけの場合は、おそらく配列をintのままにして、cellForRowAtIndexPathメソッドのセルに値をインストールする必要があります。

func tableView(tableView: UITableView, 
  cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
  let cell = tableView.dequeueReusableCellWithIdentifier("cell", 
    forIndexPath: indexPath) as! MyCustomCellType
  cell.textLabel?.text = "\(arr[indexPath.row])"
  return cell
}

編集#2:

配列を印刷するだけの場合は、Intオブジェクトの配列のままにしておき、単純に印刷する方が良いでしょう。

arr.forEach { print($0) }
58
Duncan C

あなたが使用する必要があります

 cell.textLabel?.text = "\(arr[indexPath.row])"

ラベルの値を文字列として表示するため。

2
K123