UIImage를 사용할 때 imagenamed : 끝내기 전에 UIImages를 유지하는 변수를 설정해야합니까? 때로는 UIImages가있는보기간에 전환 할 때마다 메모리가 계속 커지고 각 스위치가 앞뒤로 커집니다.UIImage 공개 imageNamed
3
A
답변
5
변수를 nil로 설정하지 않아도됩니다.
nil (self.property = nil;
)으로 속성을 설정하면 @property (retain)
으로 선언됩니다.
+imageNamed:
은 "alloc", "copy", "new"또는 "retain"으로 시작하지 않으므로이를 해제 할 필요가 없습니다. 공간이 필요하지 않기 때문에 가능한 것들이 메모리에 남아있을 수 있습니다. 누출이나 메모리 사용량 만 보입니까?
3
UIImage 변수를 nil
으로 설정하면 특히 유용하지 않습니다. 또한 메소드 이름이 반환 된 객체의 소유권을 가지고 있다는 것을 의미하지 않기 때문에 +imageNamed:
에서 반환 된 이미지를 공개해서는 안됩니다.
코코아는 이미지 캐시를 유지 관리합니다. 이후에 imageNamed:
를 호출하면 (즉, UIImage
의 객체가 불변이므로) 이미로드되어있는 경우는 같은 UIImage
객체를 돌려 주어, 그렇지 않은 경우는 다시 캐쉬에로드합니다. 캐시에서 이미지의 수명은 Cocoa가 결정합니다. 메모리가 부족한 상황에서는 이미지 데이터가 삭제 될 수 있습니다. 실제 내부 이미지 데이터가 캐시에서 지워지더라도 소유 한 개체는 여전히 이미지를 참조 할 수 있습니다 (캐시에서 제거 된 경우 Cocoa에서 이미지 데이터를 다시로드합니다). 그것은 UIImage
documentation에 걸쳐 설명되어 있습니다.
메모리 사용량이 지속적으로 증가하면 누수가 다른 곳에서 발생했을 가능성이 큽니다.
관련 문제
- 1. Uiimage Imagenamed
- 2. UIImage ImageNamed 메서드
- 3. 만료 된 [UIImage imageNamed :] 객체는 어떻게됩니까?
- 4. UIImage imageNamed 메서드로 타일 렌더링 성능 문제
- 5. 내 코드를 간소화하는 방법 - UIImage imageNamed :
- 6. 코코아 터치 - 어떻게 CGImageRef 또는 UIImage (imageNamed :) 사용하지 않는 캐시?
- 7. drawRect에서 UIImage 회전
- 8. UIImage initWithContentsOfFile이 작동하지 않습니다.
- 9. UIImage *는 UIImage 대신 __NSCFArray입니다.
- 10. 'Documents'에 저장된 이미지 파일에 대해 UIImage의 -imageNamed : 메소드가 작동합니까?
- 11. 하드 코딩 된 문자열 대신 imageNamed 변수를 사용합니다.
- 12. 앱처럼 iFog 구현하기 - 내부 UIImage 공개하기
- 13. drawInRect를 사용하여 UIImage
- 14. 이있는 UIImage 터치를 감지하고
- 15. UITableViewCell의 imageView.image에 UIImage 오버레이 추가
- 16. "정상적인"하나의 신축성 UIImage 병합
- 17. 아이폰 UIImage 배열 메모리 누수 (예전)
- 18. NSData에서 UiImage 만들기
- 19. UIImage animation
- 20. UIImage 비교
- 21. UIImage imageWithData
- 22. CGRect있는 UIImage
- 23. 게시자 상태 공개 공개
- 24. UIImage를 사용하여 cell.image를 설정하려 할 때 당황했습니다. imageNamed :
- 25. CATiledLayer 상단에 UIImage 추가
- 26. 장치 회전시 UIImage 처리 방법
- 27. iOS의 Dropbox에 메모리 UIimage 업로드
- 28. UIImage */imageNamed와 함께 작동하지 않는 간단한 할당
- 29. 데이터베이스의 파일 이름에서 UIImage 설정 값
- 30. (iPhone) UIImage 이미지에서 외부 이미지 사용 이름이
~ 340MB부터 시작합니다 (프로그램을 열지 않음). 보기를 앞뒤로 전환하면 스위치 당 약 9MB의 메모리가 떨어집니다. 거의 모든 경우에 5MB 정도를 복구하지만, 190MB로 줄이고 기다렸습니다. – Derek