見出し画像

【Console Application】ファイルとデータベース 318【学習記】

今回の概略

Associated Value は飽くまでもくっついてる値であって列挙値そのものではなかったお🤔
参考記事では「付属型」と訳していて妙訳かなと思う🤤
なので列挙値1種が変数的な使い方…ではなくどちらかと言うと各列挙値毎にプロパティを持っているだけで、必要なら全部に同じ項目を設定可能にしておかないとならないっぽい🙄コピペ大会

#学習記 #Swift
#enum #Error

【Console Application】ファイルとデータベース【学習記】
仕様
https://note.com/sayka/n/nb8a67fa90a64?magazine_key=m7bb64c6a359f#br1mB

仕様
レコード
・レベル
 1-12
・難易度
 b,n,h,a,l
・曲名
・ランプ
 -,x,a,e,c,h,e,f

オプションスイッチ
-u file.csv # 更新(略値)
 ファイル名だけ指定した場合更新処理と見做す
-d file.csv # 削除
-p # csv 出力(略値)
 何も指定せずに起動した場合出力処理と見做す
-v # バージョン
-h # ヘルプ

----備忘録
public 装飾子 → open
列挙をカスタムエラーへ
parseCsv の空行問題
Swift の args は OC 同様 [引数+1] 個


前回の粗筋

enum Error が良くわからない🙄



enum Error

Swiftの列挙型(enum)おさらい
https://qiita.com/hachinobu/items/392c96820588d1c03b0c

[Swift] Swiftのエラー処理についてざっくりとまとめてみた
https://dev.classmethod.jp/articles/about-error-handling/

この2つの資料を起点に enum Error を更に調べるお😑
まずこの NSError なるもの、 OCObjective-C では NSException を使って処理していたけれどほぼ同じ事が NSError でも可能だったのよね🤔
でも Swift だと NSError だけに統一されている。障害や異常動作に対しての考え方が OC の時よりも熟成されていて Exception でも Error で処理する事にしたんだと思う😑
Swift の Error に対する思想とかは調べているとみんながそれぞれ書いてくれてるので省略するけど OC の時ってこの NSError と NSException は引数がもっと有った筈なのよ…でも今やってるのって2つしかない🙄

Objective-Cでのエラー処理
https://qiita.com/unhappychoice/items/ae003b1c207c4494b813
一般的なエラーはこれで扱う
プロパティは3つで
domain
code
userInfo
domain -> com.example.applicationのような識別子
code -> そのままエラーのコード
userInfo -> NSDictionaryを想定していて、NSLocalizedDescriptionKeyにエラーメッセージを設定する

これに上げられてないけどエラーメッセージとしての reason で4つかな🤔
userInfo についてはざっくり側の記事でエラーにキャストした時点で空の辞書になる事が書かれてるお🤤

………

こんな感じ?と思って書いてみたけどどうも全然違う😞
値を持たせる列挙値に出したい文字を設定して目的の列挙値で投げる…というヤリクチでは無いっぽい…🙄

………
これ、もしかして全部に値持ちさせれば良いのでは…?🤔

………

ヨシ!👈🤪

メッセージが空だった場合と初期値を与えられるようなら設定して上がりかな?🤤

これで大丈夫の筈…🤔


次回は

throw してるとこを直して saveCsv に復帰かな🤤

いいなと思ったら応援しよう!