난을 NSData 클래스 1의 retainCount 증가 각 반복 ADATA 내의 다음 코드을 NSData subdataWithRange 질문
while([outData length] + ptr[currentPacket].mDataByteSize < inBytesToGet && currentPacket < packetsCount)
{
NSLog(@" ++> %d", [aData retainCount]) ;
NSInteger sO = ptr[currentPacket].mStartOffset ;
NSInteger dS = ptr[currentPacket].mDataByteSize ;
NSLog(@" get: cP: %d tP: %d mStartOffset: %d mDataByteSize: %d", currentPacket, packetsCount, sO, dS) ;
NSData *copyRange = [aData subdataWithRange: NSMakeRange(sO,dS)] ;
NSLog(@" => %d", [aData retainCount]) ;
[outData appendData:copyRange] ;
ptr[currentPacket].mStartOffset = bytesFilled + inOffset ;
[outPackets appendBytes: &ptr[currentPacket] length: sizeof(AudioStreamPacketDescription)] ;
currentPacket++ ;
bytesFilled += dS ;
}
메모리 누수가 갖는 느낌 그리고 [ADATA subdataWithRange 후 happenes : NSMakeRange (따라서, DS) ] 전화 해 ... 나는 이유를 이해할 수 없다.
"retain과 release 사이의 균형이 적절히 유지되는 한"그리고 "autorelease"는 "적절하게"계산되지만 'retainCount'에는 바로 표시되지 않습니다. 'autorelease] retain] autorelease] retainCount]'는 4입니다. –
글쎄, 나는 그것이 무엇보다 4 더하기 전에 말해야 만합니다. –