這是代碼。我用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