前提
Xcodeのプロジェクトを作成し、(Mac OSのCommand Line ToolでiOSアプリ開発ではない)プロジェクトの同じディレクトリにテキストファイル(dataList.txt)を配置しました。
実現したいこと
- XcodeのCommand Line Toolでテキストファイルの中身を加工しようと思っています。
発生している問題・エラーメッセージ
エラーメッセージ Errors thrown from here are not handled Initializer for conditional binding must have Optional type, not 'String'
該当のソースコード
import Foundation var csvArray: [String] = [] func loadCSV(fileName:String) -> [String] { guard let fileURL = Bundle.main.url(forResource: "dataList", withExtension: "txt"), let fileContents = try String(contentsOf: fileURL, encoding: .utf8) else { fatalError("読み込み出来ません") } let lineChange = fileContents.replacingOccurrences(of: "\r", with: "\n") csvArray = lineChange.components(separatedBy: "\n") csvArray.removeLast() return csvArray } csvArray = loadCSV(fileName: "dataList.txt") print(csvArray)
試したこと
おそらくiOSアプリ開発のプロジェクトの場合、同様のコードで問題なく動くと思うのですが、Command Line Toolでは動かない理由がわかりません。
Command Line Tool には Bundle という概念はないので、直接ファイルのパスを指定して開けば良いのでは。
Xcode の Edit Scheme でカレントディレクトリを $(SRCROOT) にするとか…。
https://qiita.com/takoikatakotako/items/a5767f8e29538c62c7be

回答1件
あなたの回答
tips
プレビュー