[swift]csvファイルから読込んだデータを配列にセット(Swift2.0)

広告

Realmをとりあえずインストールして、自分のアプリ(演劇感想文リンクのアプリ化!)に必要なデータモデルを色々いじっています。

なんとか形になってきたので、データを取り込んでテストを行う状況になりました。

とりあえず、CSVファイルを文字列の形式で、配列の配列に取り込んでその配列からRealmで作成したクラスのインスタンスにデータをセットして保存する手順です。

 

■CSVファイルを配列の配列に取り込み

ネットで検索すると以下のページがSwift2.0でのCSV取り込みについてのコードとしては新しそうです。

swift2.0でのCSVの読み込み -stackoverflow
ページに記載されているコメント等も含めて直すと、以下のコードが動くということらしい。

こういうときに困るのは(僕だけかもしれませんが)どれが、ファイル名とか変数として変えていいのか、swift固有の変数やパラメータで変えちゃいけないのか判然としないことです。

■コードを分析して、とりあえず必要なところだけ理解する。

他サイトのコードなども参考にして、変数の意味を把握して以下のように理解しました。

変数名 説明 私の実装上の名称
result 変数。CSVファイルの内容をString型の配列の配列(1行のカンマ区切りの項目を配列化したものが、行単位で配列になって格納される。 返り値配列集
 csvpath CSVファイルのPATH。今回は、プロジェクト内にCSVファイルを取り込んで実行。 CSVパス
“location” 取り込んだCSVファイルの名称(.csvの前)。 CSVファイル名(引数)
csvString CSVファイルの1行分の文字列(”,”を含む) CSV文字列
textarea CSVファイルの読み込んだものを表示する画面部品 (実装せず。結果はprintで確認)

 

■CSVファイル読込関数の実装

ということで、以下のようなジェネラル関数を定義し、CSVファイル名を渡せば、文字列型の配列の配列([[String]])が返ってくるようにしました。

■上記関数を利用して、CSVを読み込むコードの実装
とりあえず、劇評者(演劇感想文リンクの劇評を書いている人の情報)をモデル化した、以下のようなClass定義とそれに対応したCSVデータを作成しました。

劇評者.csvをxcodeのFileメニューのAdd File to <プロジェクト名>のメニューを選択して、プロジェクト内に取り込み以下のコードで、読み込みを行いました。

次回は、この文字列の項目で読み込んだ配列を、realmに保存します。

 

[swift]日本語でプログラミングしてみる。

広告

1 個のコメント

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です