問題タブ [dealloc]

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 に答える
52 参照

ios - iPhone メモリ管理のあいまいなシナリオ

このシナリオを理解するのにいくつかの困難があります。

  • オブジェクトを作成します
  • その保持プロパティを何かに設定しました
  • プロパティを解放するのを忘れています
  • オブジェクトを解放します

dealloc メソッドでプロパティを解放しなかったため、このシナリオではメモリ リークが発生しますか、それともプロパティは自動的に解放されますか?

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

iphone - 画像を含むテーブルビューをスクロールする際のシグナル「0」エラー

テーブルビューで画像をスクロールしているときに問題が発生しました。

Signal "0" エラーが発生します。

メモリの問題が原因だと思いますが、正確なエラーを見つけることができません。コードは次のとおりです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell";

前もって感謝します。

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

iphone - Interface Builder で作成されたオブジェクトがすぐに解放される

プロジェクト

私は、ルート テーブル ビューと詳細テーブル ビューを備えたナビゲーション コントローラー ベースの比較的単純な iPhone OS プロジェクトに取り組んでいます。メイン リストのアイテムをタップすると、プッシュされたテーブル ビューでその詳細が表示されます。

セットアップ

ビュー コントローラーの目的が曖昧にならないように、両方のビューのデータ ソースを独自のオブジェクトに分割しました。これを行うと、これらのメソッドは別のファイルにあるため、テーブル ビューにはデータ ソースがなくなりました。そのため、適切な XIB ファイルに各データ ソース クラスのインスタンスを作成し、オブジェクト アイテムを使用しました (ドラッグして、そのクラスを設定します)。 . 次に、実際にテーブルビューをデータ ソースに接続するために、Interface Builder で各テーブルビューの dataSource アウトレットを黄色のデータ ソース オブジェクトに設定します。テーブル ビュー デリゲートは引き続きビュー コントローラーに設定されます。

問題

ルート テーブル ビューは問題なく動作しますが、行をタップして詳細ビューにプッシュすると、データ ソース オブジェクトが期待どおりにインスタンス化され、すぐに解放され、クラッシュが発生します (解放されたオブジェクトで numberOfSectionsInTableView: が呼び出されます)。Interface Builder でのデータ ソース オブジェクトの作成とテーブルビュー接続で示されているように、詳細ビューですぐに必要なときにデータ ソースが自動的に割り当て解除される理由がわかりません。さらに困惑しているのは、まさにこのアプローチがルート テーブルビューに対してうまく機能することです!

質問

これが発生する原因となる、私が見逃している明らかなものはありますか?それとも、これはテーブル ビュー コントローラーのデータ ソースをインスタンス化する正しい方法ですか? ビューのみに関係するビューコントローラー内からそれを行うのは、オブジェクト指向プログラミングが貧弱であるように思われます。すべてを 2 つのテーブル ビュー コントローラー クラスに詰め込むことができ、おそらくうまくいくでしょう。

ありがとう!

0 投票する
4 に答える
311 参照

iphone - iPhone。ホームボタンを押すと、UIApplicationDelegateのdeallocが呼び出されないようにする必要があります

UIApplicationDelegateサブクラスを含むすべてのクラスにNSLogsを配置しました。ホームボタンを押しても何もエコーしないのはなぜか、興味があり、少し緊張しています。XCodeシミュレーターで実行しています。

iPhone / iPadは一度に1つのアプリを実行するので、ホームボタンを押すと実行中のアプリの痕跡がすべて破棄されませんか?

ありがとう、
ダグ

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

iphone - ナビゲーションコントローラーのすべてのビューの割り当てを解除する必要があります

アプリ内購入を設定しようとしています。購入が完了したら、アプリを最初の起動状態にリセットする必要があります。各ナビゲーションコントローラー内のすべてのビューコントローラーのロックを解除し、アプリの起動時に表示される最初のビューを再読み込みする方法があるかどうか疑問に思っています。

前もって感謝します!

0 投票する
3 に答える
782 参照

objective-c - NSDateメモリの問題(再度)

グラフ作成アプリケーションを開発していて、テキストレンダリングを簡単にするためにレンダラーをOpenGLからQuartz2Dに変更しようとしています。

以前は正常に機能していた保持されたNSDateオブジェクトが突然割り当てを解除しているように見え、NSMutableStringがその説明を追加しようとするとクラッシュが発生します(現在は「nil」)。

ビルドと分析では、潜在的な問題は報告されません。

簡略化すると、コードは次のようになります。

実際のコードはそれよりもはるかに複雑であり、別のスレッドも日付オブジェクトにアクセスしますが、適切なロックが設定されており、コードをステップスルーするときに[aDate release]どこにも呼び出されないことを強調する必要があります。

使用し[[NSDate alloc] init]ても同じ効果があります。また、initが最初に呼び出される関数であることを追加する必要があります。

誰かが私が見落としているかもしれない何か、またはNSDateオブジェクトがそれ自体をリリースしている(またはリリースしているように見える)理由を提案できますか?

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

iphone - NSZombieEnabled は作業コードを壊していますか?

に次のメソッドがありますUIImageManipulation.m

私は別のビューでそれを呼び出しています:

(imageView は以前に割り当てられた UIImageView です)

これは私のコードでうまく機能しています。画像のサイズを完全に変更し、エラーをスローしません。また、ビルド - >分析の下に何もポップアップしません。NSZombieEnabledしかし、別の問題をデバッグするためにオンにするEXC_BAD_ACCESSと、コードが壊れます。毎回。私はNSZombieEnabledオフにすることができます、コードはうまく動作します。私はそれをオンにし、ブーム。壊れた。呼び出しをコメントアウトすると、再び機能します。毎回、コンソールにエラーが表示されます: -[UIImage release]: message sent to deallocated instance 0x3b1d600. `NSZombieEnabled がオフになっている場合、このエラーは表示されません。

何か案は?

- 編集 -

わかりました、これは私を殺しています。私はできる限りどこでもブレークポイントをスタックしましたが、まだこのことを把握できません。scaleImageメソッドを呼び出すときの完全なコードは次のとおりです。

他のUIImageManipulator方法 ( makeRoundCornerImage) がエラーを引き起こしているはずはありませんが、何かを見落としている場合に備えて、ファイル全体を github hereに投げました。

しかし、それはこの方法に関するものです。である必要があります。コメントアウトすると、うまくいきます。入れっぱなしだとエラー。NSZombieEnabledしかし、これまでオフにしてエラーをスローすることはありません。

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

objective-c - アプリが起動するとすぐにカスタム クラスの割り当てが解除されます

クラス オブジェクトを nib ファイルに追加しました。すべての接続が確立されます。

しかし、何らかの理由で、オブジェクトは作成されるとすぐに割り当てが解除されます。

コードは次のとおりです。

コントロール.h:

コントロール.m:

コンソールログは次のとおりです。

[セッションは 2010-06-09 19:47:57 +1000 で開始されました。]
2010-06-09 19:47:58.771 App[91100:207] ZOMGWTF?

もちろん、addPoint をメッセージするボタンをクリックすると、クラッシュします。

2010-06-09 19:47:59.703 App[91100:207] *** -[control] performSelector:withObject:withObject:]: メッセージが割り当て解除されたインスタンス 0x3843d80 に送信されました

誰にもアイデアはありますか?

0 投票する
3 に答える
189 参照

iphone - How can i see if dealloc is being called on a uikit object, or any object not created by myself

I think i have an UIImage that has a higher retain count than it should have and i am probably leaking memory. I use this image as a thumbnail, to set a custom background to a uibutton. So the uibutton is holding a reference to it and so do i. But instead of 2, the retainCount is 3. Do i have to create a custom UIImage derived class and override dealloc if I want to place a log message there and then change the class used from UIImage to my class, or is there an easier way. Thanks in advance.

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

cocoa-touch - プログラム受信信号:「EXC_BAD_ACCESS」

私はcocos2dを使用してコードを書いています。割り当てたメモリをすべて解放したい。私は次のようにdeallocメソッドでそれを行いました。
私がリリースしたすべてのオブジェクトはインターフェイスファイルで宣言され、プロパティ(割り当て)が設定され、実装ファイルで合成されます。
allocメソッドを使用して次のように作成しました

しかし、私は次のようになっています。プログラム受信信号:「EXC_BAD_ACCESS」。デバッガーでは、[superdealloc]でエラーが表示されています。

私はメモリ管理で完全に間違っていますか?または私はこれで何かが欠けていますか?ありがとうございました。