21

私は Objective-C と Cocoa Framework (Aaron Hillgass の本を介して) を学んでおり、次の行に「強力な」識別子が含まれている理由を理解しようとしています。

@property (strong) NSManagedObjectContext *managedObjectContext;

私が理解しているように、strong がデフォルトなので、明示的に宣言する必要があるのはなぜですか?

4

3 に答える 3

23

何も書かなくても宣言できますが、コードに戻ったり、他の開発者があなたのコードを見たりするとどうなるでしょうか?

デフォルトがストロングに設定されることは知っているかもしれませんが、ジュニアレベルのプログラマーは、宣言された変数がストロングかウィークかを判断するのに非常に混乱します。

于 2012-07-19T00:34:57.280 に答える
2

リチャードに同意します。

//強参照と弱参照 ARC では、強参照と弱参照の 2 つの新しいオブジェクト参照修飾子が導入されています。

ARC では、すべてのオブジェクト参照変数はデフォルトで強力です。これはプロパティだけに当てはまるわけではありません。@property ステートメントを使用したデフォルトの識別子は、非オブジェクト タイプに割り当てられます。オブジェクト タイプは強力でなければなりません。すべてのオブジェクト参照 (プロパティ値、インスタンス変数、自動変数、パラメータ変数、および静的変数) は、ARC では保持プロパティのように機能します。

于 2014-07-08T19:57:36.370 に答える
-2

Objective -C プログラミング言語の場合:

割当

セッターが単純な代入を使用することを指定します。この属性はデフォルトです。

つまり、setter セマンティクスのデフォルト属性は、strongではなくassignです。

于 2012-07-19T00:51:52.363 に答える