-1

変数 (つまり NSString) を @property および @synthesize として宣言するだけで、インターフェイス クラスで宣言することはありません。以下の例を参照してください。

.h ファイル:

@interface myViewController : UIViewController {
}

@property (nonatomic,retain) NSString *text;

それは私とうまくいっているので、myViewController クラスで宣言する必要がありますか? なぜ?

PS ARC が有効になっています。

4

3 に答える 3

0

昔は、次のようにする必要がありました。

@interface myViewController : UIViewController {
    NSString *_text;
}

@property (nonatomic,retain) NSString *text;

@synthesize text = _text;

しかし今では、代わりに次のことができます。

@interface myViewController : UIViewController {
}

@property (nonatomic,retain) NSString *text;

それは同じです、IDEがあなたのためにそれを行い、 @synthesize プロパティも Xcode4.5 であなたのために行います。どちらの方法をとるべきかは誰も教えてくれませんが、コードで何をしたいのかを明確にしてから、それを使って何でもすることができます。

于 2013-03-29T08:36:10.943 に答える
0

プロパティの代わりに変数を宣言する特定の理由はありません (両方を宣言しても無駄です)。

私はあなたのようにプロパティだけを宣言する傾向があります。実装でインスタンス変数を直接操作するのは悪い習慣だと評判であり (initメソッドなどのまれな例外を除いて)、getter と setter を使用するのが好きだからです。

また、プロパティには、動作に関して簡単にカスタマイズできるという大きな利点があります。スレッドセーフ、可視性、およびメモリ管理の処理は、いくつかのキーワードの問題です。

于 2013-03-29T07:44:56.820 に答える
0

.m ファイルのインターフェイス セクションのことですか。

UIViewController の .m ファイルのインターフェイス セクションで宣言されたプロパティは、私用であり、他のクラスからアクセスすることはできませんが、.h ファイルのインターフェイス セクションで宣言されたプロパティはクラス プロパティであり、クラスからアクセスできます。 .

于 2013-03-29T07:48:40.190 に答える