0

NSMutableArrayにコピーされているクラスのオブジェクトがあります。私はそれを5回行います。ただし、その配列からオブジェクトを取得しようとすると、それらはすべて同じになります。

サンプルコードは次のとおりです。

[myProperty setAddress:@"Av. dos Estados, 70."]; 
[myProperty setPropType:casaRua];
[myProperty setRentalPrice:1430.0];
[propertiesArray addObject:myProperty];

myProperty = [propertiesArray objectAtIndex:0];
NSLog(@"Price 0  %.2f\n", [myProperty rentalPrice]); //In this I got 1430.0

[myProperty setAddress:@"Av. das Nações, 10. Ap: 103."];
[myProperty setPropType:apto];
[myProperty setRentalPrice:450.0];
[propertiesArray addObject:myProperty];

myProperty = [propertiesArray objectAtIndex:0];//indexPath.row];
NSLog(@"Price 0  %.2f\n", [myProperty rentalPrice]); **//In this I got 450.0???**

myP = [propertiesArray objectAtIndex:1];//indexPath.row];
NSLog(@"Price 1  %.2f\n", [myP rentalPrice]); //In this I got 450.0

私は何が間違っているのですか?配列がaddObjectで上書きされたようです

4

2 に答える 2

2

同じ「プロパティ」オブジェクトを何度も再変更しています。

copy前のオブジェクトを追加した後、変更する前に毎回それを作成するか、新しいオブジェクトをインスタンス化する必要があります。

于 2012-08-20T19:31:04.033 に答える
0

配列から同じオブジェクトを取得し、値を変更して、元に戻しているようです。それをコピーして別のオブジェクトを配列に追加する場合は、次のようにする必要があります。

myProperty = [[propertiesArray objectAtIndex:0]copy];
于 2012-08-20T19:30:53.317 に答える