問題タブ [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.
iphone - UIImageをいつリリースしますか?
次のコードを使用してサブイメージを描画します
ここで、getSubImage
は次のように定義されます
コードは正しいですか?
「CGImageRelease」imrefは安全ですか?
サブ「CGImageRetained」のimrefはありますか?
subImをリリースする必要がありますか(リリースするとエラーが発生します)?
subImはautorelease-poolに含まれていますか?含まれている場合、これをどのように知ることができますか?
一般に、オブジェクトが(デバッグ目的で)自動解放プールに含まれているかどうかを確認できますか?
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
私を助けてください!
事前にどうもありがとうございました。
――カルロ
objective-c - Objective-C:メモリリークか、自動解放による複数の割り当てがあるかどうか。
次のことを行うと、メモリリークが発生しますか?
iphone - iPhoneのオートリリースの使い方に関する質問
次のシナリオで割り当てとメモリ管理がどのように行われ、処理されるかを理解してください。私は疑似コードの例を示しており、私を悩ませている質問は以下のインラインです。
objective-c - 目的 C: この状況でデリゲートを解放する方法
リクエストが終了した後、カスタム デリゲート オブジェクトを使用していくつかのクリーンアップ タスクを実行しています。ASIHTTPRequest はデリゲートを保持しないため、自動解放できません。現在、これがデリゲートの割り当てと解放の方法です。
アプリ デリゲート
MyDelegate.m
これを行うより良い方法はありますか?デリゲートに自分自身を解放させるのは見苦しく、Xcode のビルドと分析は、私がしていることに違和感を覚えます。
iphone - iPhoneとMailcoreのメモリリークの問題
現在使用しているアプリでは、Mailcore(http://www.mronge.com/m/MailCore/API/)を使用してメールサーバーの操作を処理しています。バックグラウンドでSMTP接続を介してメッセージを送信しようとしています。問題は、メッセージが送信されるたびに、かなりの量のメモリリークが発生することをリークが教えてくれることです。これが私のせいなのか、Mailcoreのせいなのかを理解しようとしています。コードは次のとおりです。
私のビューコントローラーから:
私のアプリデリゲートから:
objective-c - スレッドで作成され、Objective-C で別のスレッドに渡されるオブジェクトの自動解放
次のように、別のスレッドの別のオブジェクトのメソッドに渡されるオブジェクトを作成するオブジェクトのメソッドがあります。
メソッドでは、オブジェクトが作成者によって何らかの形で解放されると仮定して、オブジェクトをすぐに保持します。私の質問は: MyClass がそのオブジェクトを正しく解放するにはどうすればよいですか? これは正しい方法ですか?
私の解決策は、メソッドでオブジェクトを手動で解放することでした。とにかく、Leak アナライザーがまだこれをリークとして認識しており、所有者がオブジェクトを解放する責任があるため、Apple が推奨しているものではないようです。
この状況を処理する正しい方法を説明してもらえますか? ありがとう!
iphone - copyWithZoneの戻り値の所有権と保持カウント
copyWithZoneに関するアップルのドキュメントを読みました:
「返されたオブジェクトは、それを解放する責任がある送信者によって暗黙的に保持されます」。
だから私がこれを書くと:
そして私は電話します:
obj
保持されますか?自動リリースを設定しない場合、保持カウントはどうなりますか?
iphone - iPhone - 自動解放後に保持するとどうなりますか?
自動解放されたオブジェクトを保持するとどうなるか知っていますか? それはリリースされますか、それとも保持が勝ちますか?
objective-c - iOS / ManagedObjectContext でのメモリ管理
Objective C のメモリ管理を理解していなかったようです... ため息。
私は次のコードを持っています(私の場合、両方とも有効なデータで満たされていることに注意してくださいplacemark.thoroughfare
。placemark.subThoroughfare
したがって、両方のif
条件はTRUE
item
に結び付けられていManagedObjectContext
ます。item
などの管理変数には、 でplace
作成されたセッター/ゲッターがあり@dynamic
ます。したがって、宣言は
コードの後半、ReverseGeocoderDelegate でアクセスします。
コード内のマークされた場所で解放しないとitem.place
、Instruments はそこでメモリ リークを検出します。item.place
その場合、問題のあるメソッドの外部にアクセスしようとするとすぐにプログラムがクラッシュします。
何か案は?