1

私が使う:

@property(nonatomic, weak) IBOutlet UIView *videoView;

警告があります:

プロパティ 'videoView' には、メソッド 'videoView' を定義する必要があります - @synthesize、@dynamic を使用するか、このクラスの実装でメソッドの実装を提供してください

それから私は試します:

@synthesize videoView;

エラーがあります:

現在のデプロイメント ターゲットは、自動化された __weak 参照をサポートしていません。

そして別の質問:

@property(nonatomic, unsafe_unretained) IBOutlet UIView *videoView;

- (void)dealloc {
    videoView = nil;
}

このまま使えますか?

4

2 に答える 2

3

現在のデプロイメント ターゲットは、自動化された __weak 参照をサポートしていません。

問題は、iOS 4.x が弱参照の自動ゼロ化をサポートしていないことです。つまり、弱参照されたオブジェクトが破棄された場合、弱参照は引き続きそのオブジェクトを指し、使用するとクラッシュする可能性があります。

弱い参照の自動ゼロ化は、iOS 5 以降でサポートされています。それらを利用して上記の警告をクリアするには、iOS の最小ターゲットを 5.0 に上げ、5.0 SDK を使用します。

于 2012-08-09T13:06:18.987 に答える
1

展開のターゲットは何ですか? 参照を持つには少なくとも iOS4 が必要であり、変数をweak宣言するだけで.@property@synthesize

2 番目の質問については、何をしようとしているのかということです。dealloc で変数を安全に nil に設定しようとしているだけなら、問題unsafe_unretainedありません。所有していないと宣言しているので、解放すべきではありません。

于 2012-08-09T12:49:57.803 に答える