1

UITextView에서 텍스트의 글꼴 크기를 변경하는 데 사용되는 슬라이더가 있습니다. 분석기 및 누출은 메모리 누수가 없음을보고합니다. 그러나 슬라이더를 움직여서 글꼴 크기를 변경할 때마다 메모리가 커집니다. 결국 앱에 메모리가 부족하다는 경고가 표시됩니다. 코드는 다음과 같습니다 나는 mainText.font = [UIFont systemFontOfSize:40.0];와 그 코드를 교체 할 경우UITextView의 글꼴 크기를 변경하면 메모리가 누수됩니다.

mainText.font = [UIFont systemFontOfSize:mainSlider.value]; 

는 메모리에 상관없이 내가 슬라이더를 이동하여 얼마나 많은 시간을 동일하게 유지합니다. 나는 UIFont 가능한 버그에 대한 정보를 찾고있는이 사이트와 다른 많은 사이트를 수색했다. 성공하지 못했습니다. 내가 사용하고있는 동일한 코드를 사용하는 사람들이 증가하는 기억을 언급하지 않는다. 도와주세요.

답변

1

또 다시 같은 폰트를 재생 피하기 위해 장소에서 글꼴 캐시 아마이 (가 [있는 UIImage imageNamed : @ ""]와 같은 비트)이 명시 적으로 문서에 명시된하지만

를 읽고되지

alloc 및 init 메소드를 사용하여 UIFont 객체를 만들지 마십시오. 대신 을 사용하면 UIFont 클래스 메서드를 사용하여 을 찾아 원하는 글꼴 개체를 검색합니다. 이 메서드는 기존 글꼴 개체에 대해 특성이 있는지 확인하고 이 있으면 반환합니다. 그렇지 않은 경우 원하는 글꼴 특성을 기반으로 새 글꼴 개체를 만듭니다.

는 "메모리 경고에서"전화하는 것, 하나는 캐시 또한

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIFont_Class/Reference/Reference.html

이 생각 할 수 있을까? 나는 단지 "메모리 경고 수준 = 1"이라고 가정하고 메모리 부족으로 인한 응용 프로그램 충돌이 아닌가?

+0

대단히 감사합니다. 캐싱을 통해 확실히 설명 할 수 있습니다. 당신은 응용 프로그램 충돌이 발생하지 않는다는 점에서 옳습니다. 단지 경고입니다. 내 코드는 지금 여기 – user273565

+0

: 여기에 귀하의 이론을 지원하는 또 다른 증거이다 \t \t'경우 (mainSlider.value <[UIFont systemFontSize]) { \t \t \t mainText.font = [UIFont systemFontOfSize : [UIFont systemFontSize] ; \t \t} 다른 경우 (mainSlider.value <25) { \t \t \t mainText.font = UIFont systemFontOfSize : 25]; \t \t} 다른 경우 (mainSlider.value <50) { \t \t \t mainText.font = UIFont systemFontOfSize : 50]; \t \t} else if (mainSlider.value <75) { \t \t \t mainText.font = [UIFont systemFontOfSize : 75]; \t \t} else if (mainSlider.value <100) { \t \t \t mainText.font = [UIFont systemFontOfSize : 100]; \t \t} – user273565

+0

이 코드는 슬라이더가 이동 될 때 글꼴 개체의 제한된 세트 만 지정하기 때문에 작동합니다. 이전에는 슬라이더 값이 부동 소수점 단위 (0.01 단위)로 이동했기 때문에 많은 글꼴 객체가 캐시되었습니다. 나는 이것이 과도한 메모리 사용의 이유라고 생각한다.그것은 누수가 아니지만 자원을 똑같이 사용하고 있습니다. – user273565