![見出し画像](https://assets.st-note.com/production/uploads/images/108144381/rectangle_large_type_2_0a0f86a42b282902fea6005212489626.png?width=1200)
【Console Application】ファイルとデータベース 317【学習記】
今回の概略
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] 個
前回の粗筋
エラー補足用の引数は無くなり代わりに try が要るし上に throw するなら上でも try が要る… Java みたいに省略したら上に勝手に伝播してくれない😞
Csv
saveCsv 移植してる途中だったけど、前回の throws 調査中に出てきた列挙をエラーにできる改修やろっかな🤤
………
あれ?列挙子名を文字列にする記事は一杯でてくるし列挙子に文字列型を指定して代入するのは有るけど名前とは違う文字列を与える例が出てこないお🙄
Swift の enum(列挙型)
Swift の enum を Raw Values を指定して使う
https://softmoco.com/swift-basics/swift-enum.php#6
enum Direction2: String {
case up = "UP"
case down = "DOWN"
case left = "LEFT"
case right = "RIGHT"
}
let d2 = Direction2.left
print(d2.rawValue)
なんだ、想定通り数字と同じ方式で良いのね🤤
![](https://assets.st-note.com/img/1686697457638-Z7g3MgshSc.jpg)
なんか open に文句言われてるけど一先ずここからエラーにするには…🤔
[Swift] Swiftのエラー処理についてざっくりとまとめてみた
https://dev.classmethod.jp/articles/about-error-handling/
![](https://assets.st-note.com/img/1686697474991-qVv2yuyPId.jpg)
どうも open とか public とか要らないっぽい😑
enum だからそも継承できないのかも🙄
![](https://assets.st-note.com/img/1686697490901-q5QhPP34RQ.jpg)
あれ?メッセージ加工したいけどどうやるんだろ…?🙄
Swiftの列挙型(enum)おさらい
https://qiita.com/hachinobu/items/392c96820588d1c03b0c
格納型プロパティ (stored properties)を宣言できない列挙型では、どうやって準拠させれば良いでしょうか
答えは付属型enum(Associated Value)を使えば解決することができます
………😑
![](https://assets.st-note.com/img/1686697504416-hzjdIdt7to.jpg)
😭😭😭
[Swift] Swiftのエラー処理についてざっくりとまとめてみた
https://dev.classmethod.jp/articles/about-error-handling/
前項のようにIntのRawValueEnumでは任意のエラーコードを指定することができそうですが、 値を渡せる列挙型(AssociatedValuesEnum)である場合などは、これを使用することができません。
ぐ…ぐぬぬ…🙄
うーん、このまま単なる文字列を選ぶ列挙として元の NSError を作る方法でも良いんだけど、ちょっと興味有るし、じっくり調べてみようかしら🤤
次回は
Associated Value とやらを付けて値を入れられる様にしつつ rawValue で値を簡単に取り出せる…そんな列挙エラーが作れないか調べるぽ🤤