2010-04-14 3 views

답변

25

, 그것은 retainCount 방법입니다. 일반적으로 명시 적으로는 (retainCount 참조) 카운트가 유지 어떤 객체를 요청 할 이유가 없을 것 :

Important : 때문에, 당신은 잘못된 질문을하고 있습니다. 그 결과는 종종 잘못된 것입니다. 왜냐하면 어떤 프레임 워크 객체가 관심이있는 객체를 보유하고 있는지 알지 못하기 때문입니다. 메모리 관리 문제를 디버깅 할 때는 코드가 소유권 규칙을 준수하는지 확인해야합니다.

여기 실제 질문이 있습니다. 왜 알아야합니까?

+0

내 ObjectiveC 코드의 어딘가에서 이미 릴리스 된 객체에서 릴리스가 호출되었습니다. 어떤 이유로 gdb는 메모리 액세스 위반이 발생하는 특정 위치에서 중단되지 않습니다. 문제가있는 곳을 잘 추측하고 있지만 의심스러운 객체의 참조를 인쇄하여 내 가정을 검증하고 싶습니다. – zer0stimulus

+9

dealloc 메소드에 중단 점을 두십시오. 또한 다음 링크를 확인하십시오. http://www.cocoadev.com/index.pl?NSZombieEnabled – JeremyP

+5

더 나아가 인스트루먼츠의 좀비 템플릿을 사용하십시오. –

23

retainCount

하지만 CFGetRetainCount을 사용하는 것이 좋습니다 대신

+1

이 방법은 사용하지 않는 것이 좋으며 정확한 숫자를 반환하지 않을 수도 있습니다. – Eonil

3

CFGetRetainCount 기능

예를 사용하여 :

print(CFGetRetainCount(object)) 

here 자세히 알아보십시오.

관련 문제