Swiftで、CSVファイルをURLから読み込み


初めに

Swiftで、CSVファイルをDropBoxから読み込みたいなーって調べてた時、
出てきた記事の多くがCSVファイルをプロジェクトに突っ込んでから読み込んでたので、DropBoxから読み込むための覚え書き。

開発環境

Xcode 8.1
iOS 10.1
Swift 3.0

DropBox上のCSVファイルを読み込む


//最終的にデータを格納する配列
var fileData:[[String]] = []

//DropBox上のファイルデータを突っ込む変数
var csvString = ""

let pathURL = NSURL(string: "(DropBox上のファイルリンク)")

do {
   //ここでは文字コードをUTF16で指定
   csvString = try NSString(contentsOf: pathURL as! URL, encoding: String.Encoding.utf16.rawValue) as String
} catch let error as NSError {
   print(error.localizedDescription)
}

//","区切りで配列に追加
csvString.enumerateLines { (line, stop) -> () in
   fileData.append(line.components(separatedBy: ","))
}

DropBoxのリンクについて

DropBox上のファイルを使用する際、普通にリンクをコピーするとダメなようです。

コピーしたリンクの

www.dropbox.com

この箇所を

dl.dropboxusercontent.com

に変えると良いようです。

最後に

このようにすることでDropBox上のファイルを読み込み、","区切りで配列に格納することができました。
まだまだ勉強中の身なので、間違いや蛇足な部分があるかもしれませんがご容赦ください。

参考

Swift 2.0 でファイルの読み込みと保存