引数>環境変数でALT + CMD + Rを押してNSZombieEnabledを有効にしました。さらに、「診断」>「メモリ管理」>「ゾンビオブジェクトを有効にする」で有効にしました。私はいくつかの点で、私のコンソールでこの役に立たないメッセージを与える私のアプリがクラッシュ構築し、実行したときにXcode4の「割り当てられたインスタンスに送信されたメッセージ」をデバッグする方法は?
しかし、:
*** -[CALayer retainCount]: message sent to deallocated instance 0x656b260
をスタックトレースが同じように無意味です。私は、詳細レベルのスライダをすべて右に移動しました。
すべてがシステム所有であると私のアプリに関連した一行はありません:スレッド1は、単に私にこのことを示しています。だから明らかにNSZombiesEnabledはXcode 3のように動作しません。そこでは、死んだオブジェクトで停止しました。
を把握する方法はありますか? CALayerの割り当てが早すぎますか?
更新:突然、約100回以上ビルドして実行した後、問題は破棄されました!完全に消えた!そして、最も重要な部分:私は自分のコードを変更していませんでした!私はビルドフォルダとプロジェクトをクリーンなコマンドで数回きれいにし、シミュレータで数回もアプリケーションを削除しました。
更新2:幸いにも、問題は再び現れました。そして今、それは永続的なようです。幸いにも、私はランダムにユーザを悩ませるのではなく、根本的な原因を見つけることを好むからです。
アップデート3:最後に偶然それを見つけた:
startButton = newBttn;
はされている必要があります。
self.startButton = newBttn;
スタートボタンは、保持特性だったと-deallocで、私はそれをリリースしました。だから、それは過度に解放され、ほとんどが(すべてではありませんが)ビューが消えてからクラッシュして、その奇妙なCALayerのretainCountメッセージを与えました。
Zombies Instrument(CMD + I)は、最後にボタンと関係があると指摘しました。理由と理由は分かりませんでした。
クラングスタティックアナライザは、この明らかなグリッチについては不平を言っていませんでした。
「自分自身を修正する」というバグはありません。これは並行性に関連した所有権の問題であり、コード内にはおそらく存在する可能性が非常に高いです。あなたが望むなら、時を刻む爆弾。あなたの靴では、Core Animationベースのリソースをどのように管理しているか、非常に見ていきます。 – bbum
Core Animationベースのリソースとは、具体的にはどういう意味ですか? – dontWatchMyProfile
スクリーンに寝かせ敷きに関係するものは何でも。 cocos2dを訴えている場合は、間接的にCA *のリソースを管理するので、そこでのリソースの管理を見直す必要があります。 – bbum