이 문제를 해결하기 위해 노력하고 있습니다. 기본적으로 편의 RGB UIColor 함수를 사용하여 UIColor를 반환하여 UINavigationBar, UIToolbar 및 다른 객체에 색을 입 힙니다. 그러나 인스 트루먼 트의 어떤 이유로 UIView를로드 할 때마다 메모리 누수가 계속 발생합니다. 어떤 도움을 주시면 감사하겠습니다. 명확성을 위해 여기에 코드를 단순화했습니다.UIColor 메모리 누출 문제
나는 ViewWillAppear이 설정 내 RootViewController에서- (UIColor *)returnSelectedColor{
return [UIColor colorWithRed:(100)/255.0 green:(100)/255.0 blue:(100)/255.0 alpha:(1.0)];
}
가 (때로는 색조 내가 그러나 호출 사이에서 변경할 수 있습니다 여기에 글로벌 싱글 톤 클래스에 있습니다 내 기능 (함수가 변수로 RGB와 알파가 있습니다)입니다 ViewDidLoad 시도했지만 문제가 여전히 있었다). 이 문제를 해결하기 위해 두 가지 다른 방법을 시도했지만 누출은 여전히 존재합니다. 도면은 다음과 같이 나타날 때
첫 번째 방법은 색조를 설정 막이었다 번째 방법은,보기의 UIColor 속성을 생성 하였다 원하는 UIColor로 설정하고 내비게이션 바 설정
self.navigationController.navigationBar.tintColor=[[GlobalData sharedGlobalData] returnSelectedNavigationColor];
보기가 닫히면이 속성에 색조가 적용됩니다. 이 접근 방식은 또한 메모리 누수의 원인이됩니다. 코드는 다음과 같습니다.
if(self.navigationToolbarColor!=nil){
[self.navigationToolbarColor release];
}
self.navigationToolbarColor=[[[GlobalData sharedGlobalData] returnSelectedNavigationColor] retain];
self.navigationController.navigationBar.tintColor=self.navigationToolbarColor;
아무 문제가있을 수 있습니다 아이디어가 있습니까? 미리 감사드립니다.
답장을 보내 주셔서 감사합니다. 그러나 나는 여전히 동일한 메모리 누출을 얻으려고 노력했다. 내가 사용한 첫 번째 접근 방식은 속성이없는 유지가없고 메모리 누수가 발생합니다. 내가 제안한대로 유지하지 않고 속성을 사용하여 시도하고 또한 메모리 누수가 있습니다.방금 뭔가 생각했습니다. 내 함수가 싱글 톤 객체에 있기 때문에 가능합니까? –
아니, 그게 아니야. 함수를 호출하는 대신 직접이 작업을 시도했지만 여전히 메모리 누수가 발생합니다. self.navigationToolbarColor = [UIColor colorWithRed : (39) /255.0 green : (64) /255.0 blue : (139) /255.0 alpha : (1.0)] ; 내비게이션 컨트롤러의 색조에 UIColor를 할당 한 후 어딘가에 UIColor를 릴리스해야합니까? 나는 그것이 자동 해제 된 객체라고 가정 된 이후로 필요하다고 생각하지 않았다. 모든 단서 또는 아이디어가 도움이 될 것입니다. –