問題タブ [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.

0 投票する
5 に答える
3947 参照

iphone - 「クラス NSCFString のオブジェクト 0x84be00 は、プールが配置されていない状態で自動解放されました - ただリークしています」-しかし、アプリの最初の行にあります!

私の iPhone アプリでは、コードがまったく呼び出される前に、アプリの最初の部分でコンソールに 3 つの奇妙な警告が表示されます。

進行状況インジケーターを表示するために、多くの場所で MBProgressHUD を使用します。これは、進行状況インジケーターを表示するときに新しいスレッドをスローするため、この問題の他の議論の一部が指摘しているものです。しかし、最も奇妙なことは、これらが main() 関数の開始前にスローされるように見えることです。

コードの最初の にブレークポイントを設定すると、NSAutoreleasePoolその行が実行される前に、この警告が表示されます。おそらく、この時点までに独自のコードを実行していない場合、エラーの原因は何ですか?

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

objective-c - XcodeObjectiveC-NSThreadを使用したNSAutoreleaseNoPoolエラーのヘルプ

専門家の皆さん、NSThreadで少し問題が発生しています。Xcodeは、「* __NSAutoreleaseNoPool():プールが配置されていない状態で自動リリースされたクラスNSCFStringのオブジェクト0x5694dc0-リークしているだけです」というエラーを出し続けます。

NSAutoreleasePool * pool = [[NSAutoreleasePoolalloc]init];という行でプールを正しく宣言しています。

次に、ループの最後に次を使用します。[プールリリース];

これは、performSelectorInBackgroundとしてデリゲートメソッドを使用しているためですか?stackoverflowに感謝します。

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

objective-c - Objective-Cでのファクトリメソッドのパフォーマンス

次の2つのコードスニペットにパフォーマンス上の違いはありますか?

可能な限りファクトリメソッドの使用を提案しようとしている人がいます。プールが空になったときよりも、できるだけ早くオブジェクトを解放する方が良いのではないでしょうか。タイトループなどの特定のケースでは、最初のタイプが非常に効率的であることがわかります。

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

iphone - iPhoneの複数のスレッドについて

質問があります。私のケーススタディでは、2つの大きなSQLiteデータベースがあり、スレッドを使用したいと考えています(つまり、2つのプロセスを同時に使用します)。うまくいきましたか?私は次のコードを書きました:

案内してください。私はこれを正しく行っていますか?プールを使用して排水または解放する必要がありますか?

そして、そのように、これは並行プロセスを使用していますか?つまり、マルチタスクと同じ動作ですか?

前もって感謝します!

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

objective-c - NSAutoreleasePoolのsysctl->バスエラーとsegfaults

私を助けようとしているすべての人に事前に感謝します。ここで大きな問題が発生しています。sysctlに関するサンプルコードをいくつか見つけて拡張し、ネットワークインターフェイスに入力/出力データを照会できるようにしました。このコードをmain()で直接(NSAutoreleasePoolなしで)実行すると、すべてが正常に機能します。ただし、クラスに追加して実行すると、バスエラーとsegfaultが発生します。NSAutoreleasePoolsまで問題を追跡しました。誰か助けてもらえますか?(信じられない場合は、NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];をコードの前に配置し、すべてをmain()に配置してください)

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

cocoa - CoreData インポート中のメモリ使用量が多い

メモリ フットプリントをかなり低く維持しながら、かなり大きな CoreData インポート (約 25,000 行) を実行しようとしています。データの効率的なインポートに関するドキュメントを読み、そこで提案されているすべてを実装するよう努めました (MOC の undoManager を nil に設定するなど)。

残念ながら、以下のコードを実行すると、アプリケーションのメモリ使用量は依然として約 180MB に達します。完了すると、最後の NSAutoreleasePool ドレイン コールに関係なく、アプリケーションは約 180MB マークに留まります。

Allocations を使用してアプリケーションを実行すると、メモリ使用量の 95% が私の[self.moc save:&error]呼び出しに起因することがわかります。ここで何が間違っていますか?

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

c++ - オブジェクトごとに 1 つの AutoreleasePool?

私は「大きな」ものを持つことはできませんNSAutoreleasePoolmain()私はそれに触れることを許されていません. では、オブジェクトごとに 1 つのプールを持つとはどういうことでしょうか?

これは有効な「パターン」ですか?

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

cocoa-touch - 「割り当て解除されたインスタンスに送信されたメッセージ」が原因で iOS アプリがクラッシュする

私の iOS アプリには多くのネットワーク機能があります。もちろん、重要なデータはファイルシステムに保存してオフラインで表示するなどしていますが、以前は問題なく完全に動作していました。ここで、機内モードをオンにしてこれをテストして、インターネット接続がないことをシミュレートしようとすると、GDB は次のように出力します。

gdb で malloc デバッグを試しましたが、プロセスが実行されていないか、コマンドが見つからないことがわかります。バグが発生した場所を特定するにはどうすればよいですか? backtrace は、通常の NSAutoreleasePoolPop のものしか提供しませんでした。

私の愛のために、私はこのバグがどこにあるかを追跡することはできません. NSZombiesEnabled はアドレスを教えてくれますが、malloc_history pid 0x3e93630前に情報があっても gdb がこのコマンドを認識していないというエラーが表示されます。

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

memory-leaks - メモリ リーク NSAutoreleasePool

楽器を使用すると、このコードでメモリリークが発生しましたが、その理由がわかりません!

ありがとう

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

iphone - デタッチされた NSThread メモリ リーク

楽器を使用すると、切り離されたスレッドのこのメソッドでメモリリークが発生しました:

この漏れはわかりません。

ありがとう。