每个人。我的“英语”不是很好,但我希望你能理解我的问题。
假设我有这样的代码
-(id) init
{
if ( self = [super init] )
{
deck = [[NSMutableArray alloc] initWithCapacity:52];
Card *newCard = [[Card alloc] init];
for ( int suit = 0; suit < 4; suit++ )
for ( int rank = 0; rank < 13; rank++ )
{
newCard.suit = suit;
newCard.rank = rank;
[deck addObject:newCard];
}
[newCard release];
}
return self;
}
我觉得我在上述代码中有一个错误。我想在嵌套循环中创建 52 个不同的对象并将每个对象添加到数组中。但我怀疑我将有 52 个相同的对象,并且在数组中将有 52 个指向相同地址的指针,对吧?
如果我这样做会发生什么。
-(id) init
{
if ( self = [super init] )
{
deck = [[NSMutableArray alloc] initWithCapacity:52];
for ( int suit = 0; suit < 4; suit++ )
for ( int rank = 0; rank < 13; rank++ )
{
Card *newCard = [[Card alloc] init]; // I guess every time newCard
newCard.suit = suit; // created, it will point to
newCard.rank = rank; // another chunk of memory,
[deck addObject:newCard]; // right?
[newCard release] // Should I release newCard every time?
}
}
return self;
}
那么我可以通过哪种方式创建 52 张不同的卡片呢?谢谢你。如果您需要更多解释,请询问我。