headerAd

2014年4月30日水曜日

インスタンスが自害した・・・

させたのは私のプログラムミスですけどね
忍殺(ニンジャスレイヤー)的に言うとデリゲート=サンとインスタンス=サン、ハラキリバクハツシサン

というわけで、ツイッターのほうでもつぶやきましたが、おそらく全画面広告終了後にアプリが落ちる原因はデリゲートメソッド内で自分自身にnilを渡すという意図・意味不明なコードのせいであると思われます。



前回のVer.1.0.2修正の時点で気がついて修正したつもりではいたのですが、なんと!nil渡しのコードが一つだけ消されず残っていました。
いや、ね、Ver.1.0.1では次回呼び出し時のために行うインスタンスの初期化を完了処理のデリゲートメソッド内でするというね、本気で意味の分からないコードをかいていたのですよ。徹夜続きでよくわからなくなっていたのか?ガチで書いてしまったのか?そんなことはどうでもよく、現在Ver1.0.3申請中です。
でも、実機テストではまともに動いて、なんで本番環境では動かなかったのだろう?広告も本番用を用いてテストしたんだけどねぇ。

1.0.2が審査されるまでの間に、それ以外のバグをつぶしてしまっていたので、今日修正した箇所は新規実装(ミュート録画モードといくつかのエフェクト追加)および、UI周りの修正、そして広告関連といったところで、大幅な改修はありません。(広告がまともに表示されるようになれば、改修といえなくもない、というところが悲しいところだ)

これね、初期バージョンの時点で、基底のシステム部分にはバグはまるで無かったんよ…
UI周りと広告が激しく足を引っ張ってしまった、わけよ。
本筋に集中しすぎて、周りを見ず、それに足をすくわれる。私の人生そのものというね。
どこにでも人生の縮図というものはあるのではないか?
そう悟ってしまった人はメ○タルへ

などというバカ話は置いておくとして、インスタンス抹殺は私が慣れ親しんでいたC++では外部からdeleteなどを使わない限り、まずありえない事象だったわけで、デリゲートの扱いに未だ慣れていないということが判り、今後の勉強の目的ができました。

Objective-Cの文法の不十分な理解からカプセル化した物の扱いに失敗した。

これが顛末といえるでしょう。かなりの時間を無駄にしてしまいましたが、勉強になったと思います。

0 件のコメント:

コメントを投稿