問題タブ [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.
iphone - NSOperationQueue の割り当てを適切に解除する
ユーザーが突然アプリを終了したときに通常発生する可能性のある操作がまだ実行されている場合に備えて、ivar NSOperationQueue の割り当てを解除する適切な方法を知りたいです。いくつかの例では、次のように、waitUntilAllOperationsAreFinished が使用されているのを見ました。
p>ただし、実行ループがハングアップするため、多くの人がそうしないように提案しています。では、を解放する適切な方法は何_queue
ですか? 操作が完了するのを待たずにリリースを続行するとどうなりますか?
image - プログラムで Web 画像を読み込んでカスタム ビューに表示するにはどうすればよいですか?
さて、私は Mac でプログラミングする方法を学んでいて、答えを探すのにうんざりしています。私のプログラムで何が間違っていたのか説明してもらえますか?
まず、ウィンドウで 2 つのボタン (イメージの読み込みとアンロード) をドラッグしました。次に、カスタム ビュー アイテムをドラッグし、Test_Loading_ImagesAppDelegate で行ったことを次に示します。h :
あとはInterface Builderで普通に連携してTest_Loading_ImagesAppDelegateを作りました。メートル:
前もって感謝します。
iphone - 別のクラスのオブジェクトの割り当てを解除する
こんにちは、私は通常、別のクラスのオブジェクトを作成します。これが自動リリース プールにあるかどうか教えてください。または、手動でリリースする必要があります。
objective-c - 割り当て解除されたインスタンス | 「プロセスが存在しないため、Malloc_history はプロセス XYZ を調べることができません。」
カスタムUIViewで次のメソッドを使用して、メモリの問題があります(はい;)iOSは初めてです)。
ヘッダーファイル
実装は、タッチに関連付けられた圧力で円とラベルを描画します。指で触れるたびに、このビューのオブジェクトが作成されます。
この特定のタッチの感知圧力を更新するために、この次のメソッドがコントローラーによって呼び出されない限り、すべて正常に機能します。
次のエラーが表示されます。
アプリケーションがクラッシュした後、デバッグ コンソールでメモリ トレースを調査する必要がありましたshell malloc_history <PID> 0x17dfb0
。その結果、コンソールは次を返します。
malloc_history cannot examine process 5838 because the process does not
存在。
だからここに質問:
- ここで明らかな保持、解放の問題を誰かが見ることができますか?
- どうすれば
malloc_history <PID> <Address
> 動作しますか?
お時間をいただき、リダイレクトと回答をありがとうございました!
キリスト教徒
iphone - 位置情報サービス インジケーターが「オン」のまま
iPhone で位置情報サービスを使用する小さなアプリを作成しました。アプリを明示的に強制終了しても、情報バーの小さな矢印がアクティブなままになることがあるという事実を除いて、すべてがうまく機能します。私は位置情報サービスにバックグラウンド モードを使用しているため、appDelegate メソッドapplicationWillResignActive
、applicationDidEnterBackground
、applicationWillEnterForeground
およびapplicationDidBecomeActive
が実装されていますが、位置情報サービスには触れていません (まあ、バックグラウンド モードで必要です)。
その構成applicationWillTerminate
では、呼び出されることはありません。これに適した場所が他に見つからなかったので、すべてのクリーンアップ クリーンアップを のように実装しましstopUpdatingLocation
た。dealloc
それでも - インジケーターはオンのままです。
何か案は?
objective-c - カスタムクラスは、開始直後に割り当てが解除されます。EXC_BAD_ACCESS
ボタンを処理する新しいクラスを作成しました。それは何もしません(テストのためだけに、メソッドはクリーンです)。起動直後に割り当てが解除され、ボタンをクリックするとアプリがEXC_BAD_ACCESSでクラッシュします。これは、クラスの私の.hファイルです。
実装ファイル:
コンソールリスト(NSZombieEnabledがオンになっている):
[11724:207] * -[pagechanger PerformSelector:withObject:withObject:]:割り当て解除されたインスタンス0x4b35900に送信されたメッセージ
これは、「infomalloc-historyaddress」が返すものです。
Appleのコード(ZoomingPDFViewer)を変更しようとしています。そこに新しいボタンを追加する方法が見つかりませんでした...そこで、プログラムで新しいウィンドウを作成し、それにサブビューを追加しました。しかし、このコードが役立つかどうかはわかりません...
ここで元のコードを取得できます。
EXC_BAD_ACCESSなしでメソッドを機能させるにはどうすればよいですか?
iphone - メモリ警告後に UIImage を解放するとクラッシュする
私は iphone 開発にまったく慣れていないので、アプリケーションで奇妙なクラッシュが発生しています。実際、メモリ警告をシミュレートした後、私のアプリケーションは常にクラッシュします。私は毎回この動作を再現することができ、障害のある行を分離することができました:)。
カスタムUITableViewCellsを提供するカスタムUITableViewControllerで作業しています。
セルビューのカスタムデータオブジェクトを設定する関数は次のとおりです。
そして最後に、ここで魔法が起こります:
したがって、通常のシナリオではすべてが正常に機能します。しかし、メモリ警告をシミュレートし、UITableView をスクロールすると、これらすべての関数が呼び出され、アプリケーションがクラッシュします。[image release] を削除すると、クラッシュは発生しません (ただし、「はい、メモリ リークが発生します」)。NSLog の出力は常に次のようになります。
setImage : old image > <UIImage: 0x4b54910>/UIImage/1
何が間違っているのか、この問題を回避するために何ができるのか、本当にわかりません。Xcodeデバッガーのスクリーンショットは次のとおりです...
http://img30.imageshack.us/i/debuggerscreen.png/
どんな助けでも大歓迎です。前もって感謝します
編集 1: @bbum Build and Analyze は、無関係な警告をいくつか表示しましたが、それでも有用です。それがそこにあるのさえ見ませんでした
画像を設定した場所がもう 1 つあります。ではsetDataObject
、イメージは単なるプレースホルダです。実画像のダウンロードを非同期で起動し、 に戻しrequestDidFinishLoad
ます。メソッドは次のようになります。
NSZombie Detection で計測器を実行しましたが、結果は別の方向を示しているようです。スクリーンショットは次のとおりです。
http://img13.imageshack.us/i/zombieinstrument.jpg/
それをどうするかはまだよくわかりませんが、調査は進んでいます:)
objective-c - アプリケーションを終了するときにdeallocメソッドは正常に実行されますか?
次のようなコード(たとえば、appController.m内)を使用して、アプリケーションの終了時にクリーンアップを実行します...
このメソッドは、アプリが終了したときに呼び出されることはありません。なんで ?クリーンアップを行うためのより良い場所はありますか?呼び出されないという事実は、メモリリークの問題に対処しますか?または、OSがクリーンアップを処理しますか?
ありがとうございました...
iphone - ペン先を変更するときにDeallocが呼び出されない
このようなコードを使用してペン先を頻繁に変更する非常に大きなプロジェクトがあります-
nibsを変更すると、deallocが呼び出されません(メモリ警告が表示された場合にのみ呼び出されます)。私はこれについてかなり多くの研究をしましたが、答えを見つけることができません。誰かがこれを手伝ってくれますか?
objective-c - 「removeObserver:name:object:」を呼び出すのに最適な場所はどこですか
removeObserver:name:object:
NSObject クラス リファレンスに記載されているように、dealloc
メソッドが常に実行されるとは限らないため、呼び出すのに最適な場所はどこですか??