Describe your approach to managing memory leaks and identifying retain cycles in complex Swift applications.