問題タブ [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 投票する
7 に答える
87088 参照

objective-c - NSAutoreleasePool 自動解放プールはどのように機能しますか?

私が理解しているように、allocnew、またはcopyで作成されたものはすべて手動でリリースする必要があります。例えば:

私の質問ですが、これは同じように有効ではないでしょうか?:

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

cocoa-touch - 自動リリースによって実際にCocoaTouchがリリースされるのはいつですか?

autoreleaseiOSでは注意が必要だと思います。呼び出し元が必要とするオブジェクトを返すメソッドがあるallocので、この状況では、私が理解しているようautoreleaseに、オブジェクトが戻る前に、呼び出し先のオブジェクトに送信する必要があります。

これは問題ありませんが、コントロールが電話に戻ると(つまり、ボタンのクリックが処理された後)、自動解放プールが解放されたように見えます。これが想定されていることだと思いますが、この状況のベストプラクティスは何でしょうか。

オブジェクトが解放されないように呼び出し元からメッセージを送信してretainから、で明示的に解放することにしましたdealloc

これが最善のアプローチですか?

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

objective-c - GNUStepNSAutoreleasePoolの非互換性

別のStackOverflowの投稿によると、drainメッセージはAppleのみの呼び出しです。

交換drainしても大丈夫releaseですか?Linux(現時点ではUbuntu)で実行するObjective-Cアプリケーションを移植しようとしています。始める前から諦めるべきですか?(私はすでにNSURLConnection仕事をしようとして問題を抱えています)

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

iphone - iPhone dev マルチスレッド、NSAutoreleasePool

真夜中までカウントダウンし、ビープ音を何度も再生し、時間を示すラベルを点滅させる単純なアプリケーションがあります。したがって、ラベルの点滅は NSTimer を使用し、ビープ音は独自のスレッドで発生するため、純粋な C 関数 (システム サウンド ID 完了コールバック用) は [NSThread sleepForTimeInterval:...]; を使用できます。アラームのビープ音を再生する間に少し待ちます。そのため、実行中に自動解放プールがなく、リークするという 2 つのエラー メッセージが表示されます。これは、新しいスレッドに呼び出すメソッドに、システム サウンド ID (ファイル名と拡張子) を作成するために使用される 2 つの @"Strings" があるためです。自動解放プールを使用できない方法はありますか?これは、使用しようとする唯一の 2 つのものであるためです。ありがとう。

または、別のスレッドの代わりに 2 つの NSTimer を使用する必要がありますか?

Ben Gottlieb の答えは正しかったのですが、代わりに別の NSTimer を使用することにしました。これは、コードの実際の実行としてスレッドをスリープ状態にすると、少し時間がかかる前に実際に同期されていないことを忘れていたためです。そして、それは物事を対称的にします;)。

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

iphone - NSAutoreleasePoolの問題

私はiphone2.0でこのコード行を使用していますが、正常に機能します

このコード行をiphone3.0で実行すると、ログ画面にリークメッセージが表示されます。そのメッセージは

誰かが私を助けることができますか?

前もって感謝します....

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

cocoa - NSAutorelease メモリ リーク

コンソールに次のエラー メッセージが表示されます。

エラーが何であるかわかりませんか?

ありがとう。

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

iphone - XML の解析時に iPhone アプリがフリーズする

XML フィードを解析するたびに、アプリがフリーズします。

代わりにこれを呼び出してみました:

これは次を呼び出します:

しかし、その結果、私のアプリは非常に不安定になりました... iPhone シミュレーターは、エラー警告なしでクラッシュしました。

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

cocoa-touch - initWithObjectsを使用してNSArrayに画像をロードするとクラッシュしますが、NSMutableArrayではクラッシュしませんか?

アプリが読み込まれたときに、画像を配列に遅延読み込みしています。NSMutableArrayとNSArrayを使用してみました(作成後に配列を変更する必要はありません)が、後者がクラッシュします。

vs

NSZombieEnabled = YESは、後者のコードスニペットを使用したときに、[UIImageretain]が割り当て解除されたインスタンスに送信されたことを示します。両方の配列は、私のhファイルに(非アトミック、保持)プロパティを持っています。NSArrayによって画像が保持されないのはなぜですか?

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

objective-c - 別の AutoReleasePool に割り当てられたオブジェクトを解放するにはどうすればよいですか?

Objective-C のメモリ管理に問題があります。オブジェクトを割り当て、このオブジェクトへの参照をクラスのメンバーとして格納するメソッドがあるとします。同じ関数を 2 回実行する場合は、新しいオブジェクトを作成して置き換える前に、この最初のオブジェクトを解放する必要があります。関数の最初の行が次のようになっているとします。

これは、別の自動解放プールが配置されることを意味します。オブジェクトを割り当てるコードは次のとおりです。

問題は、メソッドの最後の行を実行するとプログラムがクラッシュすることです。

私は何を間違っていますか?どうすればこれを修正できますか?

よろしく
アラン

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

c++ - Objective-CなしでApple自動リリースプールを使用する

Linux、Windows、Mac OS Xで動作する必要のあるアプリケーションを開発しています。そのために、QtでC++を使用しています。

CFBundleCopyBundleURL多くの理由で、Mac OS Xでは、でリリースする必要のあるコアオブジェクトを作成するCoreFoundation関数(など)を使用する必要がありCFReleaseます。しかし、そうすることで、これらの警告がたくさん生成されます。

これらの自動解放プールに関して私が見たすべてのコードは、Objective-Cで書かれています。CまたはC++で自動解放プールを作成/使用する方法を知っている人はいますか?