광산 프로젝트 중 하나에서 나는 꽤 복잡한 데이터 모델을 가지고 있습니다. 나 또는 다른 동료가 보관주기를 만들지 않도록하는 방법이 필요하며 자동화 된 방법을 사용하고 싶습니다.유지주기가 없음을 보장하는 테스트를 만드는 방법은 무엇입니까?
"dealloc"메서드가 모두 호출되도록하는 방법이 있습니까?
광산 프로젝트 중 하나에서 나는 꽤 복잡한 데이터 모델을 가지고 있습니다. 나 또는 다른 동료가 보관주기를 만들지 않도록하는 방법이 필요하며 자동화 된 방법을 사용하고 싶습니다.유지주기가 없음을 보장하는 테스트를 만드는 방법은 무엇입니까?
"dealloc"메서드가 모두 호출되도록하는 방법이 있습니까?
정적 분석기를 사용해 볼 수 있습니다 (제품 - 분석 또는 쇼트 컷 Shift+CMD+B
). 또는 단위 테스트 https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/UnitTestYourApp/UnitTestYourApp.html을 만들고 retainCount 개체를 검사합니다.
누출 기기도 도움이 될 수 있습니다. http://www.raywenderlich.com/2696/instruments-tutorial-for-ios-how-to-debug-memory-leaks, https://developer.apple.com/library/mac/documentation/developertools/conceptual/instrumentsuserguide/MemoryManagementforYouriOSApp/MemoryManagementforYouriOSApp.html
자동으로 그러한 것들을 테스트 할 수있는 방법은 없습니다. 상황이 당신이 할 수 있습니다 :
self
을 블록 단위로 사용할 때주의하십시오 (__weak id self
을 사용해야 할 때를 알고 있어야 함). 응용 프로그램이을 실행하는 동안 당신은 당신이 & 프로그램이 자신을 디자인해야이 작업을 수행하려면
Instruments
및 누수를 검사합니다.
.
실수로 사이클을 도입했는지 확인하기 위해 개발 & 테스트 중에 적절한 위치에서 테스트를 실행하십시오.
may 런타임 기능을 사용하여 프로토콜없이이 기능을 구현할 수 있다면 임의의 인스턴스가 해당 ivars를 발견하고 ivar이 개체 참조인지 확인할 수 있습니다. 당신은 아이어가 강하거나 약한 지 여부를 결정하면서 막힐 수 있습니다. 훨씬 더 일반적이지만 구현하기가 더 어려울 수 있지만 한번 완료되면 ...
HTH