問題タブ [autorelease]

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

iphone - 新しく割り当てられたメモリに頻繁に再割り当てされるインスタンス変数の iPhone アプリでメモリを管理する正しい方法は何ですか?

一定期間現在の状態を維持する必要があるインスタンス変数のメモリを管理する方法を理解するのに苦労しています。その後、新しく割り当てられたメモリに再割り当てされます。

インスタンス変数「importantData」の次の例を見てください。

私の実際のプロジェクトでは、getObject プロシージャは別のクラスにありますが、要点を理解するために単純化しました。importantData は、Update の呼び出し間で有効である必要があります。

getObject が呼び出されるたびに、新しいメモリを割り当てて重要なデータに割り当てていますよね? 重要なデータが以前に指していたメモリを解放する必要があると思いますよね?メモリをリークしたり、割り当て解除されたメモリを参照しようとしたりせずに、これを適切に行う方法がわかりません。ありがとう!

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

objective-c - return autorelease は目的 c のバグですか?

私は目的の c を初めて使用し、autorelease がいつどのように呼び出されるかを理解しようとしています。次の単純な使用例を理解しています。

この次のケースはどうですか? オブジェクトは makeBar のスコープを離れるとすぐに解放されるため、これはバグですか?

発信者が保持を行う場合はどうなりますか?

ありがとう、-エリック

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

iphone - TableViewCell 自動解放エラー

OK、2日間、cellForRowAtIndexメソッド内にあるエラーを解決しようとしています。まず、このメソッドのバグを追跡したと言いましょう。エラーは[CFDictionary画像]または[タイプ画像ではありません]です割り当て解除されたインスタンスにメッセージが送信されました。

デバッグ フラグ、NSZombie、MallocStack などについては知っていますが、この方法とその理由に絞り込むのに役立ちましたが、アプリの UI を再設計する以外に解決方法がわかりません。

SO 私がやろうとしているのは、このコード ブロックでは、アイテムを含む購入の詳細が表示され、アイテムは独自のセクションにあり、編集モードでは、アイテム セクションの下部にセルが表示されます。 「新しいアイテムを追加」のラベル。このボタンはアイテム追加コントローラーのモーダル ビューを表示します。アイテムが追加され、ビューは購入の詳細画面に戻り、「新しいアイテムを追加」のすぐ上のセクションに追加されたアイテムが表示されます。アイテム」セル、アイテム セクションを画面外にスクロールしてビューに戻ると問題が発生し、アプリが EXC_BAD_ACCESS でクラッシュします。または、スクロールせずにナビゲーション バーの戻るボタンを押しても、同じエラーが発生します。

singleItem は、コア データの Modal Type PurchaseItem です。

エラーの原因がわかったので、どうすれば解決できますか。知っていることすべてと知らないことのいくつかを試しましたが、それでも進歩はありません。再設計せずにこれを解決する方法についての提案が私の目標です、おそらく表示できないエラーがありますが、それが自動解放の性質である場合は、再設計します。

更新: AddItemController の追加

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

objective-c - object-c でオブジェクトを保持する

私はsetメソッドをやっています:

OBS: somobject はクラスの属性です。

[somobject autorelease] で、setSomeObject のスコープの下にあるオブジェクトをこれ以上所有したくないと宣言します。

別のオブジェクトが保持している「何らかのオブジェクト」は解放されますか? または、オブジェクトはsetSomeObjectメソッドで解放されますか?

someobject クラス属性が既に存在する場合は?

このオブジェクトの動作はどうなりますか?

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

iphone - 自動解放でオブジェクトを返しますが、それでもメモリがリークします

私はこれについてメモリリークしています:

私のカスタムクラス:

アプリデリゲートで開始します:

これはどのように漏れますか?それらを適切にリリースまたは自動リリースします。これらを保持しないと、アプリがすぐにクラッシュします。これは、初期のリリースが原因だと思います。別のリリースを追加するとクラッシュします。

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

objective-c - 自動解放されたオブジェクトが実際に解放されるのはいつですか?

私はobjective-cが初めてで、メモリ管理を理解しようとしています。


Apple による優れたCocoa のメモリ管理プログラミング ガイドを読んだ後、私の唯一の懸念は、自動解放されたオブジェクトが実際に iPhone/iPod アプリケーションで解放されたときです。私の理解は、実行ループの最後にあります。しかし、アプリケーションで実行ループを定義するものは何でしょうか?

それで、次のコードが正しいかどうか疑問に思っていました。オブジェクトを仮定する

このコードは有効ですか?

リンゴのテキストから、 functionAから返された NSString がfunctionBのスコープで有効であることを理解しています。functionCviewDidLoadで有効かどうかはわかりません。

ありがとう!

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

objective-c - 自動解放された NSOperationQueue を無効にするのは危険ですか?

かなり時間がかかり、バックグラウンドで実行する必要があるタスクがあります。ドキュメントによると、これはNSOperationQueue. NSOperationQueueただし、実際にはその 1 つのタスクにしか使用しないため、 のクラス グローバル コピーを保持したくありません。したがって、自動リリースに設定し、タスクが完了する前にリリースされないことを願っています。できます。
このような:

なんか気になるけど。これは動作することが保証されていますか? またはoperationQueue、ある時点で割り当てが解除され、それを引き継ぐ可能性がありますtheTaskか?

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

iphone - 自動解放NSStringを返すと、メモリリークが発生します

デコード後にNSStringを返す単純な関数があります。アプリケーション全体で頻繁に使用していますが、使用するたびに(「リーク」ツールによると)メモリリークが発生するようです。リークは、自動リリースしても、返されるNSStringを割り当てる行に問題があることを示しています。関数は次のとおりです。

[autorelease]についての私の理解は、まさにこの方法で使用する必要があるということです...関数でオブジェクトを返すのに十分な時間オブジェクトを保持し、後でオブジェクトを自動解放させたい場合です。したがって、手動で何もリリースしなくても、このようなコードでこの関数を使用できると思います。

しかし、このプロセスはリークを報告しており、リークを回避するためにそれを変更する方法がわかりません。私は何が間違っているのですか?

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

cocoa - 自動解放されたオブジェクトは常にメソッド全体で存続しますか?

私が正しければ、自動解放されたオブジェクトのプールの解放は、実行ループと関係があります。その「実行ループ」が何であるかはほとんどわかりませんが、私の質問は、オブジェクトが解放される可能性があるかどうかです。メソッドの終わりに達する前に?

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

objective-c - 自動解放オブジェクトを早期解放できますか?

つまり、私がこれを行った場合、オブジェクトはすぐに解放され、プールによって解放される必要はありませんか?

これに関するドキュメントで明確な説明が見つかりません。