実現したいこと
csv読み込み時のPathに変数を使いたい
発生している問題・エラーメッセージ
コード1行目の部分でファイル名を変数に入れてコードをスッキリさせたいと考えているのですが、以下の部分が上手くいきません。
//↓通る
let csvPath = Bundle.main.path(forResource: "test", ofType: "csv")
//変数に入れた途端にエラーが起きる
let csvPath = Bundle.main.path(forResource: "(strName)", ofType: "csv")
※バックスラッシュが消えておりますがこちらが原因ではありません
エラーメッセージ
Variable 'strName' used before being initialized
該当のソースコード
Swift
1if let csvPath = Bundle.main.path(forResource: "\(strName)", ofType: "csv") { 2 do { 3 var csvString = try NSString(contentsOfFile: csvPath, encoding: String.Encoding.utf8.rawValue) as String 4 5 csvString = csvString.replacingOccurrences(of: "\r", with: "") 6 let rowArray:Array = csvString.components(separatedBy: "\n") 7 8 //CSVを二次元配列に格納する 9 rowArray.forEach { 10 let items = $0.components(separatedBy: ",") 11 dataArrays.append(items) 12 } 13 } catch { 14 // エラー 15 } 16 17}
試したこと
シングルクオート( ' )に変えてみたりしたもののできませんでした。
こちらについてお分かりになられる方いらっしゃいましたら、ご教授願います。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
エラーメッセージの内容的には初期化前に変数を使用している様ですが、事前に初期化はされていますでしょうか?
処理の全文があれば、追記頂けたら正確な回答が付くかもしれません。
また、変数の "strName" がString型であれば、バックスラッシュとかカッコは不要ではないでしょうか。
※以下の様に記載できるのでは?と思いました。
Bundle.main.path(forResource: strName, ofType: "csv")
すみません!
Bundle.main.path(forResource: strName, ofType: "csv")
こちらに直したらできました。
本当にありがとうございました。
回答1件
あなたの回答
tips
プレビュー