問題タブ [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 - UINavigationController と UIViewController の dealloc
最近、UINavigationController を使用するようにアプリを変更しました。以前は UINavigationBar を使用していましたが、カスケード subView を追加していましたが、これは少し面倒でした。
メモリ使用量の問題に直面しています。Leaks ツールにはリークは表示されませんが、私が作成して UINavigationController に追加した ViewControllers は決してリリースされないようです。そのため、新しい VC を作成して NavigationController の戻るボタンを押すたびに、メモリ使用量が増加します。
この方法で VC を作成して追加するだけです。
アプリは ViewControllerdealloc
とviewDidUnload
メソッドを通過しません。戻るボタンを押すたびにこれらを呼び出すべきではありませんか?
多くのチュートリアルを検索し、Apple のメモリ管理を読みましたが、NavigationController を使用する場合のメモリ内での VC の寿命については何もありません。
iphone - Objective-C:親オブジェクトの割り当てを解除する前に、プロパティオブジェクトの割り当てを解除する必要がありますか?
「foo」という名前のオブジェクトがあり、「bar」という名前の別のオブジェクトがプロパティとしてあるとします。
「foo」が割り当てを解除すると、「bar」へのすべての参照が自動的に削除され、「bar」も割り当てが解除されますか?または、「foo」の割り当てを解除し、「bar」をメモリのどこかにフロートさせますか?「bar」のすべての参照が「foo」で定義されている場合でも。
前もって感謝します。
iphone - ASIHTTPRequest の解放と EXC_BAD_ACCESS の問題
ASIHTTPRequest ラッパー (AsyncImageLoader) の配列を使用して、UITableView のセルの画像をダウンロードしています。
ASIHTTPRequests の有効期間の処理に問題があります。それらを解放すると、画像をロードしようとしている間に上下にスクロールし続けると、EXC_BAD_ACCESS が発生します。
これが私のラッパーの外観です。self.request
保持プロパティtargetCell
があり、画像を入れたいセルです:
loadImageFromURL
th AsyncImageLoader に対して呼び出されるcellForRowAtIndexPath
ため、indexPath.row % 6
上下にスクロールし続けると、同じオブジェクトで何度も呼び出され、まだ終わっていないのでリクエストがキャンセルされます。
しかし、私は常に EXC_BAD_ACCESS を持っています。コール スタックによると、ASIHTTPRequest のmarkAsFinished
で呼び出され、 infailWithError
で呼び出されます。ほとんどの場合、ASIHTTPRequest は既に解放されています (dealloc に NSLog を追加しました) が、ASIHTTPRequest が保持をスローしているように見えるため、キャンセル中に解放されないため、これがどのように可能かわかりません。[self.request cancel]
loadImageFromURL:
デリゲート メソッドを削除すると EXC_BAD_ACCESS はありませんが、ASIHTTPRequests はself.request = nil
割り当てを解除せずに作成され続けるため、まったく機能しなくなります。
誰かが私が間違っていることを教えてもらえますか?
objective-c - -deallocはメモリを解放する以外のことをする必要がありますか?
私は仕事でiPhoneアプリを継承しましたが、Objective-Cを初めて使用するので、まだ自分の方向性を持っていません。私はこれに似たコードに遭遇しました:
私はこれが他の言語で嫌われていることを知っています。私の蜘蛛の感覚は、そのコードを見て夢中になっています。
これは一般的なObjective-Cのイディオムですか?または、修正するためのくだらないコードベースがありますか?
iphone - iPhoneリリースdealloc
私はdeallocとrelease関数の違いを最もよく理解したいと思います...例...コードにNSObject呼び出しMyClassから派生したクラスがあり、このクラスを使用するために、MyClassのインスタンスを作成します。
は正しい??とdealloc??? 順番に使用する必要がありますか、一方が他方を上書きしますか?
iphone - カスタムUIViewControllerで[super dealloc]を呼び出すときのiPhone EXC_BAD_ACCESS
私は途方に暮れています!特定の条件下でのみ発生する厄介なバグの 1 つですが、条件と結果を直接関連付けることはできません。
私のアプリにはページ化された UIScrollView があり、各ページのビューは UITableViewController のサブクラスである MyViewController から取得されます。メモリ使用量を最小限に抑えるために、現在表示されていないコントローラーをアンロードします。これが私の「クリーニング」方法です。
アプリをクラッシュさせるのは次の行です。
viewControllers は、MyViewController タイプのオブジェクトを含む NSMutableArray です。MyViewController にはカスタム プロパティがなく、その dealloc メソッドには [super dealloc] 呼び出ししか含まれていません。
デバッガーが表示するものは次のとおりです。 代替テキスト http://a.imageshack.us/img831/3610/screenshot20100806at126.png
問題は、コントローラーがクリアされるたびにこれが発生するわけではなく、時々発生することです。具体的には、特定の変更により ScrollView の完全なクリーニングと再描画がトリガーされた後、現在のページ (X と呼びます) が正常に表示されますが、X をクリーニングするのに十分な距離までスクロールするとすぐに、このクラッシュが発生します。それは私を夢中にさせています!
また、これは 4.0 シミュレーターや iPad では発生しませんが、3.1.3 を実行している第 1 世代の iPod touch では一貫して発生します。
ipad - navigationController を使用して viewController をポップするときにメモリを解放する際の問題
次の問題があります。戻るボタンを押してView Controllerをポップすると、deallocメソッドが呼び出されません。
私が使用しているコードは次のとおりです。
そして、コンソールに次のメッセージが表示されます。
初めてビューをプッシュします:
2回目:
また、表示されていない dealloc メソッドに関する NSLog メッセージもあります。しかし、別の [coleccionVista リリース] を別のリリースの後に強制すると、dealloc メッセージが表示されますが、[super dealloc] を試行するとクラッシュすることに気付きました。私は、coleccionViewController の他の参照を保持していません (私はコードを検索しており、メソッドのすべての使用法は、私が示しているコードにあります)。
何か案が?前もって感謝します!
ios - iOSアプリでカスタムメイドのNSObjectクラスをリリース
NSObjectとして作成したクラスがあります。このクラスには、さまざまなタイプやメソッドなどのプロパティがいくつかあります。
このクラスをアプリでインスタンス化すると(たとえば、メインのView Controllerで)、使用が終了するとすぐにリリース呼び出しを送信します。すなわち:
だから私の質問は:myObjectをリリースすると、MyObject .hファイルで宣言したすべての宣言されたオブジェクトや変数などが自動的にリリースされますか?
また
これらすべてをリリースするカスタムリリースメソッドを作成する必要がありますか?
メモリ管理の問題があるのでお願いします。
ありがとうございました。
iphone - NSOperationQueue と dealloc が呼び出されてアプリがクラッシュする問題
次のように、キューに NSOperation を作成しました。
これは正常に動作しますが、操作が完了する前にビューがポップされると、アプリは「EXC_BAD_ACCESS」でクラッシュします
cancelAllOperations を呼び出して操作キューをキャンセルしようとしましたが、既に処理中のため、アプリのクラッシュを防ぐことはできません。ドコは、操作が実行されている場合、操作がキャンセルされたことを検出して適切に応答するのは操作次第であると言っていますが、これをどのように実装するかはよくわかりません。
何か案は?
iphone - スーパービューから削除されたUIViewをいつリリースするか
一部のXMLが一部のURLから解析されている間に、サブビューに追加されるロード画面UIViewを作成しています。XMLが返されると、ロード画面がスーパービューから削除されます。
私が持っている質問は、このオブジェクトをどのようにリリースする必要があるかということです。
以下のコードではremoveFromSuperview
、loadingScreenに送信していることがわかりますが、リリースしない限り、このオブジェクトの所有権は引き続きあります。しかし、私がそれをリリースした場合、リリースするものは何もありませviewdidUnload
んdealloc
。