你能澄清我以下: 我對象 - 將對象添加到數組
NSMutableArray *_array;
...
_array = [[NSMutableArray alloc] initWithCapacity:20];
MyClassItem *item;
item = [[MyClassItem alloc] init];
item.a = @"a";
item.b = @"b";
[_array addObject:item];
item.a = @"a1";
item.b = @"b1";
[_array addObject:item];
在這種情況下,我收到_array兩個相似的物體, 項目[0] == .A item [1] .a == @「a1」 但我認爲item [0] .a應該是@「a」...
我知道如果每次添加它之前都要初始化item排列,一切都會好的,
MyClassItem *item;
item = [[MyClassItem alloc] init];
item.a = @"a";
item.b = @"b";
[_array addObject:item];
item = [[MyClassItem alloc] init];//If I add this line, everything is OK
item.a = @"a1";
item.b = @"b1";
[_array addObject:item];
我想這樣 - 我有一個對象,我修改它的屬性,並添加到數組後,我再次修改它的屬性並將其添加到數組,但如果它只把指針指向它的對象,爲什麼我用相同對象的init修復它?
發生在第一次init期間分配的內存?
希望你明白我的挫折)
指針,你需要了解指針。 http://www.techotopia.com/index.php/Pointers_and_Indirection_in_Objective-C – sbarow
我真的不認爲這種初學者問題應該被降低。我們都從某個地方開始,問題本身沒有任何錯誤。對於幾乎所有的開發人員來說,他所要求的內容都很清晰,對某些人來說這很容易 - 這可能確實令人頭疼。 – avuthless