古い OS X プログラムを書き直していますが、その過程で初めて ARC を使用しています。これらのプロパティ定義を含むクラスがあります。
@property NSMutableArray *variables; //variable names
@property NSData *ebndArray; //boundary energies
これらは次のように合成されます (インスタンス変数は宣言しません)。
@synthesize variables = _variables;
@synthesize ebndArray = _ebndArray;
init
メソッドには次の行が含まれます。
self.variables = [[NSMutableArray alloc] initWithCapacity:self.npparxx];
self.ebndArray = [NSData dataWithBytesNoCopy:theArray length:arrayLength];
プロパティへの割り当てについてvariables
、Xcode は警告Assigning reserved object to unsafe property を表示しています。ebndArray
プロパティの警告はありません。プロパティ定義に追加(strong)
することで、警告 (および結果として生じる問題) を排除できることはわかっています。定義variables
に追加する必要がないのはなぜですか? ebndArray
を追加しなくても、ebndArray
プロパティは正しく機能し(strong)
ますか?
OS X 10.7.3 で Xcode 4.3.2 を実行しています。