这是代码。我用NSString进行了测试,并返回-1。但是对于NSMutableArray而言是0。为什么retainCount是0而不是1?
NSMutableArray *items = [[NSMutableArray alloc] init];
for(int i=0;i<10;i++)
{
[items addObject:[Possession randomPossession]];
}
/*for(int i=0;i<[items count];i++)
{
NSLog(@"%@", [items objectAtIndex:i]);
}*/
//Using Fast Enumeration
/*for(items in items)
{
NSLog(@"%@", items);
}*/
NSLog(@"%d", [items retainCount]);
我在迭代中使用数组犯了错误。正确的应该是这样的。
//Using Fast Enumeration
for(Possession *item in items)
{
NSLog(@"%@", item);
}
而且retainCount恢复正常预期1
你能否澄清你的-1来自哪里,以及'NSString测试'是什么意思?谢谢! – wpearse 2011-03-09 03:44:09
你的代码真的说“for(items in items)”吗?因为如果确实如此,一切都会破裂。 (特别是,“条目”在代码末尾与开始时不同,它并不是真的指向NSMutableArray。) – 2011-03-09 03:46:20
完全同意Gareth McCaughan – makboney 2011-03-09 03:51:55