最後に、ARCに移行します。遅すぎるように聞こえますが、私のプロジェクトはすべて3.0とのレトロ互換性があり(App Storeがサポートされていないというニュースはありますか?)、使用できません。しかし、今はiOS 5でベースデプロイメントを行う新しいプロジェクトで作業しているので、ARCを使用しています。
私の質問はとても簡単です。私はプライベートインスタンス変数とパブリックプロパティを宣言するために使用されます。例えば:
@interface MyClass : NSObject {
@private
Var *aVar_;
Var *anotherVar_;
}
@property (nonatomic, readonly) Var *aVar;
@end
@implementation MyClass
@synthesize aVar = aVar_;
@end
クラス内では、プロパティではなくインスタンス変数を操作します。
しかし、プロパティを使用する場合は必要で冗長ではないと思うので、今はインスタンス変数を避けようとしています。以前に読んだのは、インスタンス変数の代わりにプロパティを使用する方が良いということですが、よくわかりません。そのクラスは今そのように見えます
@interface MyClass : NSObject
@property (nonatomic, readwrite, strong) Var *aVar;
@end
@interface MyClass()
@property (nonatomic, readwrite, strong) Var *anotherVar;
@end
@implementation MyClass
@synthesize aVar = aVar_;
@synthesize anotherVar = anotherVar_;
@end
この場合、冗長性が低く、ARCがすべてのメモリの問題を考慮しているため、データの管理にインスタンス変数(下線付き)を使用していますが、それが正しいかどうかはわかりません。
また、別の質問があります。コードの最初のチャンクにあるのプロパティaVar
は読み取り専用ですが、プロパティのみを使用する場合は、そのプロパティを読み取り/書き込みにする必要があります。パブリックプロパティを読み取り専用にしたい場合、@ interfaceでパブリック読み取り専用プロパティを宣言し、プライベート@interfaceでプライベート読み取り書き込みを宣言する必要がありますか?
どうもありがとう。