強いプロパティ属性とは何ですか


80

私は開発者向けにXcodeベータ版を使用していますが、微妙な違いに気づいています。その中には、宣言されたプロパティの新しい属性があります。

@property(strong)IBOutlet NSArrayController *arrayControl;

私の質問は:強い属性はどういう意味ですか?古いものに取って代わるのでしょうか、それともまったく新しいものでしょうか?グーグルと開発者向けドキュメントを検索しましたが、何も見つかりませんでした。それが何であるかを知るまで、私はそれを使うのをためらっています。

前もって感謝します


1
本当に...ここベータNDAのものについて話すことになっていません
ケンドールHelmstetter Gelner

3
まあ、それは私が企業の秘密を与えるようなものではありませんが、はい、私はおそらくこれをリンゴの開発フォーラムに置くべきでした
チャンスハドソン

私はObjectivecに関するこれらの「ベータNDA」コメントを見続けています。AppleがObjectiveCの秘密を保護する必要性を感じていることは陽気であり(誰もがObjective Cをコピーしたくてたまらない!)、開発者がそれについて人々を悩ませることの必要性を感じていることはさらに面白いと思います。
Jehan

回答:



10

強い参照とは、オブジェクトの割り当て解除を妨げるオブジェクトへの参照です。言い換えれば、それは所有者の関係を作成します。以前はこれを行いましたが:

**// Non-ARC Compliant Declaration
@property(retain) NSObject *obj;**

ARCでは、クラスインスタンスが参照オブジェクトの所有権を取得するように、次のことを行います(つまり、所有者が割り当て解除されるまで割り当てを解除できません)。

**// ARC Compliant Declaration
@property(strong) NSObject *obj;**

4

ご存知のとおり、iOS 5のARCベースのプロジェクトではオブジェクトを解放できません。したがって、後の段階でさらに使用するためにオブジェクトを保持し、ARCがオブジェクトをメモリから削除したくない場合は、次のように設定します。 「Strong」としてのオブジェクトのプロパティ。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.