【Console Application】ファイルとデータベース 370【学習記】
今回の概略
内部クラスから外側クラスへのアクセスは parent を持たせれば可能だが外側クラスがプロパティとして内部クラスを保持する場合初期化で積む😭
遅延初期化や nil 許容にすれば init を抜けられるけど別途設定関数を呼ぶ必要が有って設計として不親切なので却下😑
そのプロパティになった内部クラスにプロパティとして外側クラスを保持させると循環参照が明示的に作られるから良く考えると結局 (Swift 的に) 不適切な設計になるっぽい😞
前回の粗筋
内部クラスは外側クラスを見る方法がわからない😞
内部クラスに外側クラスをプロパティで持たせようとしても外側クラスの init が終わらないと渡せない…😑
DBAccessor
うーん…どうしたものか…😞
前回終わってから作戦を練ってたんだけど
・内部クラスが外側クラスをプロパティ埋め込み無しに実現する方法
・初期化中に self を渡す方法
・内部クラスが呼んでいる外側クラスの関数を共通関数群として分離する
のどれかかな、と思う😑
一番良いのが勿論一番上の内部から外側関数を呼べるようにする事なんだけど…これは一度調べたけど出てこなかったのよね…🙄
内部クラスから外側クラス
逆の記事は凄い一杯有る😑
他の3言語でも内部クラスを扱える物は例外なく外側を見る方法が有ったけど Swift だと突然資料が出てこなくなるのでできないのかな、という結論をしたのが以前の調査の結論だったワケだけど…😞
前回から少し時間が経ってて、その間に移植とかで得られた知見も有るからまた少し検索の仕方に違いが出るかも、を期待して再調査開始するぽ🙄
でもなんか、 Mac のプログラミングが Xcode じゃなかった時代は、こんな感じで、有るかどうかもわからない資料を探して延々と調べる感じだったから「最先端」っていつもこうなのかなって思わなくもない😑
これは今回の探している情報ではないけれど、他の所で自クラス静的プロパティの参照をしているのがあるからもしかしたらこれで置換できるかも…?🤔
そうすれば自クラス名を書かなくて良くなるので後で(忘れてなければ)試してみようかしら🤤
………
………
………
出てこないけれど ちょいちょい「クロージャ」「プロトコル」という語が出てくるお😑
クロージャは見たらいわゆるラムダ構文みたいだからプロトコルでちょっと調べるぽ🤔(逸脱
_人人人人人人_
> interface <
 ̄Y^Y^Y^Y^Y^ ̄
はい…解散…と思ったけど delegate というのが気になるのでもうちょっと調べるお😑
OC と同じシロモノかな…?🤔
どうやら OC の概念のままで間違いなさそう😑
イベント処理基準になっているならアリかもしれないけど今の学習用題材はそうじゃないんだよねぇ😞
init 中に self を渡す
………
………
………
全く出て来ず😞
次回は
内部クラスが呼んでいる parent の関数を分離するお😑
分離は要らない可能性はゼロじゃないけど少なくとも DBKey 内から呼ばない形へ変更する、のは間違いない🤔