前提・実現したいこと
現在、Swift5でアプリを作成しています。
アプリ内で得られるデータを3つの配列に入れています。
var A: [Int] = [A0,A1,]]
var B: [Int] = [B0,B1,
var C: [String] = [C0,C1,~]
これらの各配列を前から順番に1つに結合し、
dataString: String = A0,B0,C0,A1,B1,C1,~
結合した文字列を3つごとに改行してCSVに出力して保存したいと考えています。
A0 B0 C0
A1 B1 C1
~
発生している問題・エラーメッセージ
これらを実装するために以下のコードを書きましたが、配列の最後の値(Ax,Bx,Cx)しかcsvに保存されません。
該当のソースコード
Swift5
1 var dataArray = [String]() 2 3 while rowCount < self.aArray.count { 4 5 dataArray = [String(describing: self.aArray[rowCount]),String(describing: self.bArray[rowCount]),self.cArray[rowCount]] 6 7 rowCount = rowCount + 1 8 9 do { 10 11 var dataString = "" 12 dataString = dataArray.joined(separator: ",") 13 14 let path = NSHomeDirectory() + "/Documents/data.csv" 15 16 try dataString.write(toFile: path, atomically: true, encoding: String.Encoding.utf8) 17 18 } catch let error as NSError { 19 20 print("保存に失敗しました。: (error)") 21 22 } 23 } 24 25 }) 26 27 let cancelAction: UIAlertAction = UIAlertAction(title: "キャンセル", style: UIAlertAction.Style.cancel, handler:{ 28 (action: UIAlertAction!) -> Void in 29 30 print("キャンセルしました") 31 32 }) 33 34 saveAlert.addAction(defaultAction) 35 saveAlert.addAction(cancelAction) 36 37 present(saveAlert, animated: true, completion: nil) 38 39 } 40
試したこと
いろいろとコードを書いてみたのですが、配列の最初の値のみが保存されたり、Index out of rangeでアプリが落ちたりして、解決策がみつかりません。
ご助言をお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/23 07:26