好的 - 不太明白这里发生了什么。我正在构建一个简单的纸牌游戏。我创建了一个 UIView 类别来处理“卡片”应该包含的所有内容。我认为这无关紧要,但也许不是。
无论如何,在我的视图控制器中,我只是创建了 2 个 NSMutableArrays 来握住庄家和玩家的手。然后我正在调用一个方法来设置卡值。在该方法中,我执行 NSLog 来查看特定卡片对象的值 - 一切看起来都不错。但是,如果我尝试从我的视图控制器中获取该值,它总是会为所有具有数组中最后一个对象的值的对象返回。
一些代码:
playersCards = [[NSMutableArray alloc] initWithObjects:[[UIView alloc] init],[[UIView alloc] init],nil];
[[playersCards objectAtIndex:0] setCardValue];
[[playersCards objectAtIndex:1] setCardValue];
NSLog(@"1: %i",[[playersCards objectAtIndex:0] returnValue]);
NSLog(@"2: %i",[[playersCards objectAtIndex:1] returnValue]);
因此,当我在调用 setCardValue (这在类别内)后得到 NSLog 时——再次,一切都很好。但是那些 NSLogs 就在那里 - 它们为两者返回索引 1 的值。这里发生了什么事?