我试图使一个数组中的一个对象等于另一个。如果我单独设置每个属性,它工作正常,但我想设置一个对象等于 antoher 而不编写函数来运行每个属性。
-(void)DrawCard: (int) wp{
[self GetNc :(wp)];
if (nc > 0){
((card*) [[Hands objectAtIndex:wp] objectAtIndex:nc]) = ((card*) [[Draws objectAtIndex:wp] objectAtIndex:0])
}
}
(wp 代表哪个玩家。所有 GetNc 都会通过查找 Hands 中当前使用的卡片对象的最高索引来设置整数 nc(用于新卡片)。
这不会编译,但设置一个单独的属性会:
((card*) [[Hands objectAtIndex:wp] objectAtIndex:nc]).suit = ((card*) [[Draws objectAtIndex:wp] objectAtIndex:0]).suit;
并且尝试不进行强制转换也会产生无效的左值错误,即:
[[Hands objectAtIndex:wp] objectAtIndex:nc] = [[Draws objectAtIndex:wp] objectAtIndex:0];
(是否可以在不强制转换的情况下设置数组对象?)
感谢您抽出宝贵时间阅读和回复。干杯!