1つのクラス(classA)が乱数を生成し、それを可変配列に追加するプログラムを作成しています。ビューコントローラ(viewControllerA)は、classAからメソッドを呼び出し、乱数の配列を受け取り、それを独自の配列に格納します。
同じ配列を必要とする別のクラス(classB)があります。viewcontrollerAは、配列で必要な処理を終了した後、classBの配列のsetterメソッドを呼び出します。classBの配列のsetterメソッドとgetterメソッドでNSLogを呼び出して、配列が読み込まれるかどうかを確認します。
-(void)setRandomNumberArray:(NSArray *)randomNumberArray{
_randomNumberArray = randomNumberArray;
NSLog(@"%@ setter", _randomNumberArray);
}
-
-(NSArray *)randomNumberArray{
if (!_randomNumberArray) {
_randomNumberArray = [[NSArray alloc] init];
}
NSLog(@"%@ getter", _randomNumberArray);
return _randomNumberArray;
}
viewControlerAでsetterメソッドを呼び出すと、NSLogは配列の値を返します。viewControllerBでgetterメソッドを呼び出すと、NSLogはgetterメソッドから何も出力しません。
2012-05-29 23:57:43.589 SwipeGame[8603:f803] (
) getter
明らかに配列を設定していますが、取得したいときのために保持していません。何が起こっている?私は他の複数の手法を試しましたが、常に配列を設定しますが、配列を「取得」したいときのために保持しません。
私の配列のプロパティは、ところで保持するように設定されています。
更新:はい、私はARCを使用しています。私の財産宣言は次のとおりです。
@property (nonatomic, strong) NSArray *randomNumberArray
解決済み:ご協力いただきありがとうございます。インスタンスの問題でした。