次のように、Objective-C のクラスのプロパティを使用することを好みます (新しい Xcode バージョンでは標準のようです)。
/* MyClass.h */
@interface MyClass : NSObject;
@property (nonatomic, strong) NSArray *myArray;
@end;
/* MyClass.m */
#import MyClass.h
@implementation
@synthesize myArray = _myArray;
- (void)anyMethod {
self.myArray = // do something
}
@end
ただし、ウェブ上のいくつかの github リポジトリでは、プロパティを使用するさまざまな方法を見つけました。
/* MyClass.h */
@interface MyClass : NSObject {
NSArray *myArray;
}
// sometimes the @property is used here too
@end;
/* MyClass.m */
#import MyClass.h
@implementation
- (void)anyMethod {
_myArray = // do something
}
@end
それらの方法の違いは正確には何ですか?インスタンス変数へのアクセスで何かをしなければならないことを読みました。しかし、@interface セクションで変数を宣言し、@property を使用しない (または時々使用する) 人がいるのはなぜでしょうか?