다음은 코드입니다. 나는 NSString으로 테스트했고, -1을 리턴했다. 그러나 NSMutableArray는 0입니다.왜 retainCount가 1 대신 0입니까?
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이 어디서 왔는지, 그리고 'NSString을 사용하여 테스트'한다는 것이 무엇을 의미하는지 명확하게 설명해 주시겠습니까? 감사! – wpearse
코드에서 "for (items in items)"라고 말하는가? 왜냐하면 모든 것이 망가 졌을테니까. (특히 "items"는 코드의 끝 부분에서 같은 것을 의미하지 않으며 더 이상 NSMutableArray를 가리키고 있지 않습니다.) –
Gareth McCaughan과 완전히 일치합니다 – makboney