[解決済み】このブロックで自己を強く捉えると、リテインサイクルになりそうです。
2022-04-08 23:09:28
質問
xcodeでこの警告を回避するにはどうしたらよいですか?以下はコードスニペットです。
[player(AVPlayer object) addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(0.1, 100)
queue:nil usingBlock:^(CMTime time) {
current+=1;
if(current==60)
{
min+=(current/60);
current = 0;
}
[timerDisp(UILabel) setText:[NSString stringWithFormat:@"%02d:%02d",min,current]];///warning occurs in this line
}];
解決方法は?
のキャプチャは
self
の暗黙のプロパティアクセスで入ってきています。
self.timerDisp
- を参照することはできません。
self
またはプロパティで
self
が強く保持するブロックから
self
.
への弱い参照を作成することで、これを回避することができます。
self
にアクセスする前に
timerDisp
をブロック内で使用します。
__weak typeof(self) weakSelf = self;
[player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(0.1, 100)
queue:nil
usingBlock:^(CMTime time) {
current+=1;
if(current==60)
{
min+=(current/60);
current = 0;
}
[weakSelf.timerDisp setText:[NSString stringWithFormat:@"%02d:%02d",min,current]];
}];
関連
-
[解決済み] クラス 'test_coredataAppDelegate' の重複したインターフェイス宣言
-
[解決済み] Objective-Cの#importと#includeの違いは何ですか?
-
[解決済み] メソッド名と行番号を出力し、NSLogを条件付きで無効にする方法は?
-
[解決済み】浮動小数点以下が2桁しか表示されないようにする
-
[解決済み】Windows版Objective-C
-
[解決済み】idの代わりにinstancetypeを使い始めるのは有益でしょうか?
-
[解決済み】NSMutableArrayから反復処理中に削除する最良の方法は?
-
[解決済み] 一部のファイルに対する自動参照カウントの無効化
-
[解決済み] ブロックを使って `self` のサイクルを保持する
-
[解決済み] ARC対応コードにおける「このブロック内で強く[オブジェクト]を捕捉するとretainサイクルになる可能性があります」という警告の修正
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 開発者の身元が確認できないため開けない
-
[解決済み] インスタンスに送信されたセレクタが認識されない」を解決するには?
-
[解決済み] Objective-Cのtypedef enumとは何ですか?
-
[解決済み] クラスメソッドとインスタンスメソッドの違いは何ですか?
-
[解決済み】浮動小数点値の比較はどのくらい危険か?
-
[解決済み】セマンティックな問題。プロパティの合成ゲッターは、「所有する」オブジェクトを返すためのCocoa命名規則に従っている。
-
[解決済み】Swiftコンパイラーエラー。"フレームワークモジュール内の非モジュラーヘッダー"
-
[解決済み] registerForRemoteNotificationTypes: は iOS 8.0 以降でサポートされていません。
-
[解決済み] [Solved] UITableViewがReloadDataを完了したことを伝えるには?
-
[解決済み] ARC対応コードにおける「このブロック内で強く[オブジェクト]を捕捉するとretainサイクルになる可能性があります」という警告の修正