![見出し画像](https://assets.st-note.com/production/uploads/images/120401413/rectangle_large_type_2_f44a3954fc1281c419f5df67791a4b15.png?width=1200)
【Console Application】ファイルとデータベース 370【学習記】
今回の概略
内部クラスから外側クラスへのアクセスは parent を持たせれば可能だが外側クラスがプロパティとして内部クラスを保持する場合初期化で積む😭
遅延初期化や nil 許容にすれば init を抜けられるけど別途設定関数を呼ぶ必要が有って設計として不親切なので却下😑
そのプロパティになった内部クラスにプロパティとして外側クラスを保持させると循環参照が明示的に作られるから良く考えると結局 (Swift 的に) 不適切な設計になるっぽい😞
【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] 個
前回の粗筋
内部クラスは外側クラスを見る方法がわからない😞
内部クラスに外側クラスをプロパティで持たせようとしても外側クラスの init が終わらないと渡せない…😑
DBAccessor
うーん…どうしたものか…😞
前回終わってから作戦を練ってたんだけど
・内部クラスが外側クラスをプロパティ埋め込み無しに実現する方法
・初期化中に self を渡す方法
・内部クラスが呼んでいる外側クラスの関数を共通関数群として分離する
のどれかかな、と思う😑
一番良いのが勿論一番上の内部から外側関数を呼べるようにする事なんだけど…これは一度調べたけど出てこなかったのよね…🙄
内部クラスから外側クラス
逆の記事は凄い一杯有る😑
他の3言語でも内部クラスを扱える物は例外なく外側を見る方法が有ったけど Swift だと突然資料が出てこなくなるのでできないのかな、という結論をしたのが以前の調査の結論だったワケだけど…😞
前回から少し時間が経ってて、その間に移植とかで得られた知見も有るからまた少し検索の仕方に違いが出るかも、を期待して再調査開始するぽ🙄
でもなんか、 Mac のプログラミングが Xcode じゃなかった時代は、こんな感じで、有るかどうかもわからない資料を探して延々と調べる感じだったから「最先端」っていつもこうなのかなって思わなくもない😑
【Swift】型の種類について(構造体、クラス、列挙型)
https://zenn.dev/kaitombow/scraps/ea98cb78117685
型の内部での型自身へのアクセス
型の内部のプロパティやメソッドなどの中では、大文字のSelfキーワードを通じて型自身にアクセスできる。
これは今回の探している情報ではないけれど、他の所で自クラス静的プロパティの参照をしているのがあるからもしかしたらこれで置換できるかも…?🤔
そうすれば自クラス名を書かなくて良くなるので後で(忘れてなければ)試してみようかしら🤤
………
………
………
出てこないけれど ちょいちょい「クロージャ」「プロトコル」という語が出てくるお😑
クロージャは見たらいわゆるラムダ構文みたいだからプロトコルでちょっと調べるぽ🤔(逸脱
【Swift】プロトコル(protocol)の使い方
https://techblog.recochoku.jp/8051
Swiftのプロトコルとは、クラスや構造体が保持するプロパティやメソッドなどの決まり事を定めるものです。
プロトコルを定義することによって、複数の型で共通の機能を実装することができます。
型宣言の時にプロトコルに従い、定められた機能を実装することをプロトコルに「準拠する」と言います。
_人人人人人人_
> interface <
 ̄Y^Y^Y^Y^Y^ ̄
はい…解散…と思ったけど delegate というのが気になるのでもうちょっと調べるお😑
OC と同じシロモノかな…?🤔
SwiftにおけるDelegateとは何か、なぜ使うのか
https://qiita.com/st43/items/9f9990d76cefa1909ef4
プロトコルとデリゲートのとても簡単なサンプルについて
https://qiita.com/mochizukikotaro/items/a5bc60d92aa2d6fe52ca
どうやら OC の概念のままで間違いなさそう😑
イベント処理基準になっているならアリかもしれないけど今の学習用題材はそうじゃないんだよねぇ😞
init 中に self を渡す
………
………
………
全く出て来ず😞
次回は
内部クラスが呼んでいる parent の関数を分離するお😑
分離は要らない可能性はゼロじゃないけど少なくとも DBKey 内から呼ばない形へ変更する、のは間違いない🤔
この記事が気に入ったらサポートをしてみませんか?