質問編集履歴

1 コードを追加しました

meia

meia score 26

2017/02/14 09:03  投稿

CSVから読み込んだテキストを改行させたいです
###前提・実現したいこと
swift3
xcode8です。
WindowsのExcelで作ったCSVからtextviewやlabelに文章を表示させる練習をしていて、そこでひとつわからないことがあります。
[csvファイルを多次元配列に格納する方法は?](https://teratail.com/questions/50851)
[【Swift】CSVファイルを使ってデータの入出力を行う。](http://hajihaji-lemon.com/smartphone/swift/csv/)
などを参考にしました。
```swift  
//改行される  
textView.text = "今日は\nいい天気ですね"  
// CSV読み込み  
       if let csvPath = Bundle.main.path(forResource: "mainData", ofType: "csv") {  
           do {  
               var csvString = try NSString(contentsOfFile: csvPath, encoding: String.Encoding.shiftJIS.rawValue) as String  
               csvString = csvString.replacingOccurrences(of: "\r", with: "")  
               rowArray = csvString.components(separatedBy: "\n")  
                 
               rowArray.forEach {  
                   let items = $0.components(separatedBy: ",")  
                   mainData.append(items)  
               }  
           } catch {  
               print(error)  
           }  
 
//配列の中に\nが入っていても改行されない  
textView.text = mainData[0][0]  
 
```  
###試したこと
ふつうにコード上で文章を作って改行させるときは、バックスラッシュとnをいれればいいということは分かったのですが、CSV上の文章にバックスラッシュとnをいれてもバックスラッシュとnが文章中に入るだけで改行されません。
(ここにバックスラッシュを入れると、なぜか¥になってしまうのでカタカナにしてあります。読みづらくてすいません・・・)
どうしてこうなるのかと、何をいれれば任意の箇所で改行させられるのかを教えていただきたいです。
関係あるかはわかりませんが、CSVをxcodeで読むと文字化けするので、encodeをshiftJISにしてます。
もし原因等をご存知の方がいらしたら、教えていただけると助かります。
  • Xcode

    8134 questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Swift

    14094 questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る