こんばんは
やった〜
ついに克服しました
何日も悩んでいたメモリー暴走の件、ついに解決しました
メモリー容量のせいにしていたのは結局逃げですね
原因はやはり自分にありました
何度も心折れそうになっていたのですが、とにかくおめでとう
で、どういう事だったのかと言うと、つまり
A画面からB画面をNavigationLinkで呼び出していたんですが、その両方で宣言している変数名にかぶりがあったのが最初の原因です
そこでB画面の方の変数定義を@State宣言にしてA画面に持っていって、B画面では@Bindingで宣言しました
かぶっていた変数はA画面にあるものをB画面で@Binding宣言すれば被りません
しかし、それでも暴走は止まらず状況はだんだん悪くなる一方
あ〜でもない、こ〜でもないと色々と試行錯誤していましたが、フリーズするたびに再起動してまた同じことをして再起動
何度も繰り返しているうちに、ふと気がついたのは@Stateと@Bindingで変数を共有する必要はないのではないかと言うこと
そこでまたよく考えて、A画面で必要な変数はそのままA画面で@State宣言しておいてB画面で必要な変数はやはりB画面で@State宣言しました
その時両画面で名前の被っていた同じ内容の変数はB画面では少し違う名前にして、A画面からB画面を呼び出すときに引数として渡すことにしました
最初から引数渡しにすればなんてことなかったんですね
それを変数の共有という少しかっこいいやり方に拘ってしまったのが敗因でした
しつこいバグも治ってしまえば何事もなかったようにすんなりと動きます
さっきまでの暴走はなんじゃったんか・・・
気に入らないことがあったのかも知らんけど、そんならそうと言ってくれよ
黙ったまま突然暴走してくれたんじゃぁ、なんもわからんじゃろ
なんかゆうてくれたらよかったんじゃがノォ
まあ、じゃがしっかりと目を見てじっくりと話し合ったらわかってくれたんかの
急に改心したように大人しくなった
そぉじゃ、大人になったんかもしれんノォ
随分経験値をもろぉたで・・・
RPGなら中間の中ボスを倒した感じじゃの
まだ中ボス?
そうじゃろ、まだこれからもう一回中ボスが来て、その次がラスボスかのぉ
じゃが、この経験値でだいぶ強ぉなったけえ、もぉ大丈夫じゃろ
ということで、やっとアプリの姿が見えてきました
これから実機でのデータベースの動作確認とか、細かい使用感の調整とか色々と面倒なことがあります
アイコンも考えとかないとね・・・
ということで今日はグッスリと眠れそうです
※コメント投稿者のブログIDはブログ作成者のみに通知されます