問題タブ [nszombies]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
739 参照

objective-c - 過剰放出問題とゾンビ

リリース ステートメントのコメントを外すと、このプログラムがクラッシュします。リリースしすぎていることに気づき、すぐに気づきました。しかし、ゾンビをテストするためだけに、ゾンビをオン (NSZombiesEnabled = YES および CFZombieLevel = 16) にすると、プログラムは正常に実行され、例外はスローされません。

何が与えますか?ゾンビをオンにすると、私がなんて馬鹿げているかがわかると思いました...修正しないでください。

0 投票する
1 に答える
2451 参照

xcode - XCode4でNSZombiesEnabledを設定するにはどうすればよいですか?

XCode4 で NSZombiesEnabled を有効にするにはどうすればよいですか? この引数を使用して、XCode3 で EXC_BAD_ACCESS をデバッグしていました。XCode4のどこでそれを行うべきかわかりません。

0 投票する
1 に答える
694 参照

ios - Cocos2d によるスプライト メモリの問題の削除をデバッグする方法

しばらくの間、iOS 向けのタワー ディフェンス ゲームに取り組んでいます。Cocos2d を使用しています (v0.99.5 は不明)。最近、スプライトの削除を開始したときに、いくつかの問題が発生し始めました。

楽器とゾンビを使用してプロファイルを作成すると、次のようになります。

ゾンビの痕跡 スプライトを更新する (および削除する) ためのコードは update にあります。

GameSprite.m の remove メソッド:

最初のブロックは、SpriteBatchNode/textureAtlas 内のスプライトを更新します。残りの 3 つのブロックは、さまざまなオブジェクトを削除する必要があるかどうかをチェックします。(彼らの生きている変数は NO に設定されていますか?)。私が異なるタイプの 3 つのブロックを持っている理由は、発射体がクリープを (弱い) 参照しており、クリープの前に削除する必要があるためです。

したがって、私の問題は、発射体がクリープに衝突し、発射体(およびそのクリープを発射する他のすべての発射体)が削除されると、ランダムにクラッシュすることです。クリープの参照カウントは 0 になりましたが、まだ子配列にあるようです。エラーの原因は次のとおりです。

(**) でマークした行に

問題は、Cocos2d の removeFromParentAndCleanUP: を理解することであるか、または発射物とクリープの関係を処理するための私の「解決策」がメモリの観点から悪いことです。これを解決する方法やさらにデバッグする方法についてのアイデアはありますか?

0 投票する
1 に答える
92 参照

debugging - 'オブジェクトの原因を見つけるのに助けが必要です'エラーメッセージ

私のiPadアプリ、iOS 6.0、XCode 4.5では、実行すると次のメッセージが表示されます。

*キャッチされなかった例外'NSInvalidArgumentException'が原因でアプリを終了しています、理由:'* -[__ NSArrayM insertObject:atIndex:]:オブジェクトをnilにすることはできません'

見てみましたが、どこで起こっているのかわかりません。NSZombiesをオンに設定しましたが、Instrumentsで意味のあるものは何もありませんでした。少なくともこれがどこで起こっているのかを教えてくれるツールや設定などはありますか?

0 投票する
2 に答える
624 参照

ios - UIKit と QuartzCore 共有 CALayer の EXC_BAD_ACCESS

私は解決できないEXC_BAD_ACCESSエラーを実験しているので、ここでそれを紹介します:)

普段は楽器ゾンビを使ってこういうエラーを解いてるんだけど、今回はそう簡単にはいかない…。

添付の画像でわかるように、このオブジェクトとのやり取りはないようです。UIKitとQuartzCoreによってのみ保持/リリースされるため、どこを調べて解決するのかわかりません。

ヒントはありますか?ありがとう!

画像 URL: http://i.stack.imgur.com/6R7f0.png ここに画像の説明を入力

0 投票する
0 に答える
876 参照

ios - 再開時に UITextField がアプリをクラッシュさせる

モーダル ダイアログ内に表示する UITextField があります。UITextField に触れると、ABPeoplePicker (連絡先セレクター) が表示されます (これもモーダルです)。次に、ABPeoplePicker を閉じて、最初に表示されたモーダル ダイアログでアプリをバックグラウンドにすると、アプリケーションの再開時に EXC_BAD_ACCESS クラッシュが発生します。

ゾンビの使用:

ここではあまり派手なことはしていません。ABPeoplePicker を表示および非表示にするために、いくつかの ViewController メソッドをストーリーボードの UITextField の「Editing Did Begin」および「Editing Did End」イベントにバインドするだけです。

連絡先を選択すると、次のことが起こります (ABPeoplePickerNavigationControllerDelegate):

そして最後に:

興味深いことに、クラッシュは iOS 6 でのみ発生します。iOS 5 は問題なく動作します。

どういうわけか私のUITextFieldにメッセージを送ろうとしているiOSの内部にある通知関連のものはありますか? 欠落している潜在的なクリーンアップタスクはありますか? 私は問題なく他の場所で同じ手法を使用していますが、本当に混乱しています。元のテキスト フィールドを (モーダルではなく) 「プッシュ」スタイルのプレゼンテーションに移動して、ネストされたモーダル表示ダイアログによる問題を除外しようとさえしました。

私は ARC を使用しており、UITextField は ViewController で弱参照として宣言されていることに注意してください。

どんな洞察も大歓迎です!ありがとう!

アップデート

わかりました、問題は見つかりましたが、なぜそれが起こっているのかわかりません。問題を要約すると、customerBeginEditing での [sender rejectFirstResponder] への呼び出しです。何らかの理由で、この呼び出しにより、アプリの再開時に [NSNotificationCenter addObserver:selector:name:object:] が呼び出されます (ただし、UITextField を含むページが表示されなくなった場合のみ)。私は自分のコードを作り直して、resignFirstResponder をまったく呼び出す必要がないようにすることで問題を解決できますが、iOS5 と iOS6 の間で何が変更されてこの問題が発生したのかまだわかりません。誰にもアイデアはありますか?

0 投票する
1 に答える
84 参照

ios - iOSでNZombieを修正する方法

iOSでアプリを開発しています

ここに画像の説明を入力

このアプリケーションは署名をキャプチャし、データベースから再描画します...

スレッドを追加したときに問題が発生しました。署名の描画中にリアルタイムで生体認証データをラベルに印刷すると、ランダムにクラッシュします。つまり、署名を完全に描画することもあれば、署名の 3/4 だけを描画することもその半分……。

Instruments というツールを使用して NSZombies を検出しようとしたところ、これが得られました...

ここに画像の説明を入力

ここに画像の説明を入力

コードを調べると、これは私が見つけたコードの一部です...

ここに画像の説明を入力

これは、クラッシュするコードの一部です。

-[NSConcreteMutableAtributedString length] はゾンビの責任であると言っています

これは私のコードです:

およびスレッドによって呼び出されるコード:

ご支援いただきありがとうございます