2014-12-25 3 views
0

mm 파일에 C++ 클래스가 있습니다. 클래스는 컨트롤러에 대한 포인터를 받았고 컨트롤러에 대한 참조를 보유합니다. cpp 클래스는 컨트롤러에 대한 강력한 참조를 보유하고 있으며 메모리 문제를 일으킨다.cpp 클래스의 ios 컨트롤러 약화 참조 보유

약한 참조를 컨트롤러에 저장할 수 있습니까?

+0

__weak 수정자를 추가하려 했습니까? –

답변

0

빌드 대상 속성의 '빌드 단계'탭에서 XCode의 개별 파일에 대해 ARC를 사용하지 않도록 설정할 수 있습니다. 'Compile Sources'섹션을 접어 컴파일러 플래그에 -fno-objc-arc을 추가하십시오. 많은 튜토리얼에서 cpp-class에서 ARC를 비활성화하는 것이 좋습니다.

이제이 클래스의 모든 NSObject는 수동 메모리 관리 (retain/release 메서드 호출)가 필요합니다.

0

mm 파일은 objective-C++ 파일이며 모든 클래스에는 동일한 메모리 관리 문제가 있으며 C++ 객체를 제외하고는 objective-c 객체를 사용합니다. 따라서 질문에 누출 된 객체가 C++ 객체가 아니라면 'weak'으로 만듭니다. 개체가 C++이라면 분명히 다른 전략이 필요합니다.