39ギター

35年ぶりに弾き始めたクラシックギター
神経痛と戦いながら
どこまでバッハに迫れるか
蝶も花もアーチェリーもあるよ

暴走の件、ついに解決

2020-03-13 23:27:16 | 日記

こんばんは

 

やった〜

ついに克服しました

何日も悩んでいたメモリー暴走の件、ついに解決しました

メモリー容量のせいにしていたのは結局逃げですね

原因はやはり自分にありました

何度も心折れそうになっていたのですが、とにかくおめでとう

 

で、どういう事だったのかと言うと、つまり

 

A画面からB画面をNavigationLinkで呼び出していたんですが、その両方で宣言している変数名にかぶりがあったのが最初の原因です

そこでB画面の方の変数定義を@State宣言にしてA画面に持っていって、B画面では@Bindingで宣言しました

かぶっていた変数はA画面にあるものをB画面で@Binding宣言すれば被りません

しかし、それでも暴走は止まらず状況はだんだん悪くなる一方

あ〜でもない、こ〜でもないと色々と試行錯誤していましたが、フリーズするたびに再起動してまた同じことをして再起動

何度も繰り返しているうちに、ふと気がついたのは@Stateと@Bindingで変数を共有する必要はないのではないかと言うこと

そこでまたよく考えて、A画面で必要な変数はそのままA画面で@State宣言しておいてB画面で必要な変数はやはりB画面で@State宣言しました

その時両画面で名前の被っていた同じ内容の変数はB画面では少し違う名前にして、A画面からB画面を呼び出すときに引数として渡すことにしました

最初から引数渡しにすればなんてことなかったんですね

それを変数の共有という少しかっこいいやり方に拘ってしまったのが敗因でした

しつこいバグも治ってしまえば何事もなかったようにすんなりと動きます

 

さっきまでの暴走はなんじゃったんか・・・

気に入らないことがあったのかも知らんけど、そんならそうと言ってくれよ

黙ったまま突然暴走してくれたんじゃぁ、なんもわからんじゃろ

なんかゆうてくれたらよかったんじゃがノォ

まあ、じゃがしっかりと目を見てじっくりと話し合ったらわかってくれたんかの

急に改心したように大人しくなった

そぉじゃ、大人になったんかもしれんノォ

 

随分経験値をもろぉたで・・・

RPGなら中間の中ボスを倒した感じじゃの

まだ中ボス?

そうじゃろ、まだこれからもう一回中ボスが来て、その次がラスボスかのぉ

じゃが、この経験値でだいぶ強ぉなったけえ、もぉ大丈夫じゃろ

 

ということで、やっとアプリの姿が見えてきました

これから実機でのデータベースの動作確認とか、細かい使用感の調整とか色々と面倒なことがあります

アイコンも考えとかないとね・・・

 

ということで今日はグッスリと眠れそうです