問題タブ [nsautoreleasepool]
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.
objective-c - NSValueの割り当てを手動で解除する
自動解放プールを作成せずに、C構造体へのポインターを使用してNSValueをインスタンス化することは可能ですか?今のところ、私はこれを行います:
ただし、これは自動リリースプールによるリリースです。これを管理し、必要なときに割り当てを解除できるようにしたいと思います。これは可能ですか?私はこれを試しました:
しかし、何らかの理由でクラッシュしています。すぐにリリースできるようにする他の方法はありますか?ありがとう!
iphone - cellForRowAtIndexPathのメモリリーク:
indexPathを指定して、関連するセルへの参照を取得してチェックマークを削除したいと思います。これにはcellForRowAtIndexPathを使用できると思いましたが、次のメッセージが表示されます。
__NSAutoreleaseNoPool():プールが配置されていない状態で自動リリースされたクラスUITableViewのオブジェクト0x685a600-リークしているだけ
このような単純な行でも:
つまり、これはセルへのポインタを返すだけではありませんよね?たぶん私はこの方法が何のためにあるのか誤解しています。セルへの参照を取得してaccessoryViewを変更することは可能ですか?ありがとう!
iphone - Autoreleasepoolをリリースすると、iOS 4.0(および4.1でも)でクラッシュします。
何が原因なのか気になります。コードには、performSelectorInBackgroundを使用して呼び出すメソッドがいくつかあります。これらの各メソッド内に、メソッドの最初に割り当て/初期化され、メソッドの最後にリリースされる自動リリースプールがあります。
これはiOS3.1.3/ 3.2 / 4.2 / 4.2.1で完全に機能しますが、iOS 4.0では、[myPoolrelease]を呼び出した後に発生するEXC_BAD_ACCESS例外で致命的にクラッシュします。
この奇妙な振る舞いに気付いた後、私はコードの一部を書き直し、クライアントOSが4.0の場合にアプリを「並列性を低くする」ことを考えていました。
それを行った後、アプリがクラッシュした次のポイントは、ReachabilityCallback-ApplesReachability"Framework"のメソッド内でした。
さて、今私は何をすべきかよくわかりません。
スレッド化されたメソッド内で行うことは、非常に単純なxml解析です(ココアの呼び出しやUIに影響を与えるようなものはありません)。各メソッドが終了すると、調整スレッドがリッスンする通知を送信し、すべての並列化されたメソッドが終了すると、調整スレッドはviewcontrollersなどを呼び出します。
何がこの奇妙な振る舞いを引き起こすのか、私にはまったくわかりません。特にApplesCodeも失敗するからです。
どんな助けでも大歓迎です!
ありがとう、サム
iphone - nsoperationqueue に autoreleasepool を適切に使用する方法
リファクタリング中のアプリがあり、UI がよりスムーズに実行されるようにマルチスレッドを実装しました。iPhone シミュレーターではリークは発生しませんが、iOS 4.2 で実行されている iPhone 3G でテストすると、メモリ リークが発生します。operationqueue を使用して autoreleasepool を実装する正しい方法について多くの検索を行いました。助けていただければ幸いです。
ビューコントローラーにnsoperationqueueを作成しました
iphone - NSAutoReleasePool リーク
このコードで NSAutoreleasePool がリークしている理由を誰か教えてください。リークをチェックするために計測器を使用していますが、このコードはどういうわけかリークしています。誰でも私を正しい方向に導くことができますか?他の場所でもまったく同じコードを使用していますが、正常に動作しています。
iphone - NSOperationQueue を使用し、スライダー/ピッカーなどを変更しようとすると、iPhone デバイスで多数のリークが発生する
NSOperationQueue を使用し、スライダー/ピッカーなどを変更しようとすると、iPhone デバイスで多数のリークが発生します。
問題なくラベルを変更できますが、インターフェイス ビルダーで作成されたスライダーまたはピッカーを変更しようとすると、これらのリークが発生します。
以下のコード
objective-c - スレッドで作成され、Objective-C で別のスレッドに渡されるオブジェクトの自動解放
次のように、別のスレッドの別のオブジェクトのメソッドに渡されるオブジェクトを作成するオブジェクトのメソッドがあります。
メソッドでは、オブジェクトが作成者によって何らかの形で解放されると仮定して、オブジェクトをすぐに保持します。私の質問は: MyClass がそのオブジェクトを正しく解放するにはどうすればよいですか? これは正しい方法ですか?
私の解決策は、メソッドでオブジェクトを手動で解放することでした。とにかく、Leak アナライザーがまだこれをリークとして認識しており、所有者がオブジェクトを解放する責任があるため、Apple が推奨しているものではないようです。
この状況を処理する正しい方法を説明してもらえますか? ありがとう!
objective-c - Objective-C: 1 つのスレッドで割り当て、別のスレッドで解放する
私はメインスレッドでこれをやっています:
loadAimation では:
そしてメインスレッドで私はそれを解放します:
ここで、メモリ管理に関してこれで問題ないかどうかを尋ねたいと思います。
iphone - iPhone - 自動解放後に保持するとどうなりますか?
自動解放されたオブジェクトを保持するとどうなるか知っていますか? それはリリースされますか、それとも保持が勝ちますか?
iphone - クラッシュ - 「コレクション」列挙中に変異しました。」
目標は、「テーブルビューを表示する前にデータをロードする viewWillAppear の開始時にスピナー グラフィックを起動する」ことであり、ユーザーはテーブルを表示する前に遅延がある理由を不思議に思うことはありません。つまり、UIActivityIndicatorView がウィンドウに追加されたので、それを非表示/表示するようにアルファを設定したいだけです。
viewWillAppear のロード/計算に進む前に、スレッドを開始して「回転する歯車」イメージビュー (tag=333) が表示されることを確認すると、この奇妙なエラーが発生します。
[appdel addGearz] と [appdel removeGearz] のすべての呼び出しで取得できるわけではありません。これらの両方で発生し、ランダムです。これは、viewWillAppears の 2 回後、または 15 回後に発生する可能性があります。アルファを設定する行をコメントアウトすると、すべてが機能します。
典型的な viewWillAppear は次のようになります。
.alpha の行がコメントアウトされていない場合にクラッシュするコードは次のとおりです。
私は他の誰かのコードを使用したことがあります。確かに、スレッド内の UIView のアルファを変更できる必要がありますか? 「これを変更している間は列挙を停止する」コードにアルファ変更を「埋め込む」必要がありますか?
そのアルファ変更行をプール割り当ての上または[プールドレイン]の下に移動することでクラッシュしないようにしましたが、「プールが配置されていない状態で自動解放されました-ちょうどリークしています」というメッセージがたくさん表示されます。
どうやら、このスレッド コードについて理解できないことがあります。