你能澄清我以下: 我对象 - 将对象添加到数组
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