2016-11-23 3 views
0

Xcode8 및 Swift3에 대한 연구를하고 있습니다. 응용 프로그램을 실행하는 동안 나는 시각적 메모리 디버깅을 사용하고 있습니다. 그것은 나에게 왼쪽에 3 메모리 문제를 보여줍니다. 이 메모리 문제를 어떻게 해결할 수 있는지 알려주십시오. enter image description here메모리 누출 문제

답변

0

글쎄, 프로그램의 흐름을 알지 못해도 이러한 문제를 해결하는 방법을 알려주는 것이 어렵습니다. 또한 메모리 문제에 많은 원인이 있으며, 실제로 개체의 인스턴스를 처리하는 방법에 따라 달라집니다.

ARC를 사용하지 않는다면 작성한 모든 객체를 릴리스해야한다는 의미입니다. 그런 다음 해당 객체가 유출 된 단계를 확인해야합니다. 거기에 언급했듯이, 유출 된 사전입니다. 따라서 특정 개체를 검사 할 수있는 단서가 있습니다.

반면에 ARC를 사용하는 경우 사용자가 만든 개체의 릴리스를 처리 할 필요가 없습니다. 하지만, 누출이 발생하지 않는다는 의미는 아닙니다. ARC를 사용하는 경우에도 프로그램에서 메모리 누수가 발생할 수있는 가능한 원인은 다음과 같습니다.

  • 하위 개체의 부모에 대한 강력한 참조를 설정했습니다. 이로 인해 유지주기가 발생합니다.
  • 인터페이스에서 대리인에 대한 강력한 참조를 설정했습니다.
  • 소유권을 이전 한 후 수신자 부담 브리징을 할 때 객체를 놓는 것을 잊었습니다.
  • 블록에서 전달한 개체에 약한 참조를 설정하는 것을 잊었습니다.

이 도움이 되었기를 바랍니다.