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

iphone - UIImageをいつリリースしますか?

次のコードを使用してサブイメージを描画します

ここで、getSubImageは次のように定義されます

コードは正しいですか?

「CGImageRelease」imrefは安全ですか?

サブ「CGImageRetained」のimrefはありますか?

subImをリリースする必要がありますか(リリースするとエラーが発生します)?

subImはautorelease-poolに含まれていますか?含まれている場合、これをどのように知ることができますか?

一般に、オブジェクトが(デバッグ目的で)自動解放プールに含まれているかどうかを確認できますか?

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

ios4 - ボタンを押した後、毎秒短い音を再生する必要があるときに AVAudioPlayer オブジェクトを解放する方法

私は次の問題を抱えています。私のアプリは、ユーザーがボタンを押した後、指定された回数 (たとえば 5 回) 毎秒ティック サウンドを再生する必要があります。

私はこれを使用しました:

for (int w=1; w<=5; w++) {
[NSThread detachNewThreadSelector:@selector(tic) toTarget:self withObject:nil];
[NSThread sleepForTimeInterval:1.0];
}

どこ:

- (void)tic {
NSAutoreleasePool *ticPool = [[NSAutoreleasePool alloc] init];
player_tic = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource:@"tick" ofType:@"aif"]] error:nil];
[player_tic setDelegate:self];
[player_tic play];
[ticPool drain];
}

と:

- (void) audioPlayerDidFinishPlaying: (AVAudioPlayer *)player_tic successfully:(BOOL)flag {
NSLog(@"Audio finished playing.");
[player_tic release];
}

すべてがうまくいくようです。私の問題は、オブジェクトが最後に一緒に解放されることです。サウンドを再生するたびに、関連する「player_tic」をすぐに解放する
必要があります。

他の情報:

.m:
@synthesize player_tic;

.h:
@interface myController : UIViewController {
...
AVAudioPlayer *player_tic;
}
@property (nonatomic, retain) AVAudioPlayer *player_tic;

何よりも、コンパイル時に次の警告があります。
local declaration of 'player_tic' hides instance variable

私を助けてください!
事前にどうもありがとうございました。

――カルロ

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

objective-c - Objective-C:メモリリークか、自動解放による複数の割り当てがあるかどうか。

次のことを行うと、メモリリークが発生しますか?

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

iphone - iPhoneのオートリリースの使い方に関する質問

次のシナリオで割り当てとメモリ管理がどのように行われ、処理されるかを理解してください。私は疑似コードの例を示しており、私を悩ませている質問は以下のインラインです。

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

objective-c - 目的 C: この状況でデリゲートを解放する方法

リクエストが終了した後、カスタム デリゲート オブジェクトを使用していくつかのクリーンアップ タスクを実行しています。ASIHTTPRequest はデリゲートを保持しないため、自動解放できません。現在、これがデリゲートの割り当てと解放の方法です。

アプリ デリゲート

MyDelegate.m

これを行うより良い方法はありますか?デリゲートに自分自身を解放させるのは見苦しく、Xcode のビルドと分析は、私がしていることに違和感を覚えます。

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

iphone - iPhoneとMailcoreのメモリリークの問題

現在使用しているアプリでは、Mailcore(http://www.mronge.com/m/MailCore/API/)を使用してメールサーバーの操作を処理しています。バックグラウンドでSMTP接続を介してメッセージを送信しようとしています。問題は、メッセージが送信されるたびに、かなりの量のメモリリークが発生することをリークが教えてくれることです。これが私のせいなのか、Mailcoreのせいなのかを理解しようとしています。コードは次のとおりです。

私のビューコントローラーから:

私のアプリデリゲートから:

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

objective-c - スレッドで作成され、Objective-C で別のスレッドに渡されるオブジェクトの自動解放

次のように、別のスレッドの別のオブジェクトのメソッドに渡されるオブジェクトを作成するオブジェクトのメソッドがあります。

メソッドでは、オブジェクトが作成者によって何らかの形で解放されると仮定して、オブジェクトをすぐに保持します。私の質問は: MyClass がそのオブジェクトを正しく解放するにはどうすればよいですか? これは正しい方法ですか?

私の解決策は、メソッドでオブジェクトを手動で解放することでした。とにかく、Leak アナライザーがまだこれをリークとして認識しており、所有者がオブジェクトを解放する責任があるため、Apple が推奨しているものではないようです。

この状況を処理する正しい方法を説明してもらえますか? ありがとう!

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

iphone - copyWithZoneの戻り値の所有権と保持カウント

copyWithZoneに関するアップルのドキュメントを読みました:

「返されたオブジェクトは、それを解放する責任がある送信者によって暗黙的に保持されます」。

だから私がこれを書くと:

そして私は電話します:

obj保持されますか?自動リリースを設定しない場合、保持カウントはどうなりますか?

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

iphone - iPhone - 自動解放後に保持するとどうなりますか?

自動解放されたオブジェクトを保持するとどうなるか知っていますか? それはリリースされますか、それとも保持が勝ちますか?

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

objective-c - iOS / ManagedObjectContext でのメモリ管理

Objective C のメモリ管理を理解していなかったようです... ため息。

私は次のコードを持っています(私の場合、両方とも有効なデータで満たされていることに注意してくださいplacemark.thoroughfareplacemark.subThoroughfareしたがって、両方のif条件はTRUE

itemに結び付けられていManagedObjectContextます。itemなどの管理変数には、 でplace作成されたセッター/ゲッターがあり@dynamicます。したがって、宣言は

コードの後半、ReverseGeocoderDelegate でアクセスします。

コード内のマークされた場所で解放しないとitem.place、Instruments はそこでメモリ リークを検出します。item.placeその場合、問題のあるメソッドの外部にアクセスしようとするとすぐにプログラムがクラッシュします。

何か案は?