2013-06-20 2 views
2

내 응용 프로그램에 여러 개의보기 (예 : 즐겨 찾기 아이콘)로 재사용 할 수있는 아이콘이 몇 개 있습니다.로딩 우수 사례 Uhmage

메모리를 절약하기 위해 정적 이미지를로드하는 클래스 메서드와 함께 클래스를 사용하는 것이 좋은 아이디어일까요? 예를 들어

:

+ (UIImage *)favoriteIcon { 
    static UIImage * icon; 
    if (!icon) 
     icon = [UIImage imageNamed:@"favorite.png"]; 
    return icon; 
} 

아니면 그냥 + (UIImage *) imageNamed:(NSString *)name는 내가 필요로하는 모든 시간을 사용 하는가?

귀하의 조언에 감사드립니다.

답변

6

[UIImage imageNamed:]은 이미 후드 아래에서 이와 같은 작업을 수행하고 있습니다. 사실, 메모리가 부족하고 즉시 필요하지 않을 때 이미지를 버리는 것과 같은 일을하기 때문에 더 똑똑합니다. favoriteIcon 메서드를 사용하면 영원히로드됩니다.

일반적으로 앱을 빌드하고 개선 할 부분/방법을 확인하기 전에 프로파일 링을 수행 할 때까지 이와 같은 최적화를하지 않는 것이 좋습니다. 그렇지 않으면 시간을 낭비하거나 상황을 악화시킬 수 있습니다. 인스 트루먼 트를 사용하여 앱을 프로파일하는 방법을 배우는 것이 좋습니다. 복잡한 일이지만 많은 시간이 걸리면 재미있는 일입니다.

+5

'UIImage imageNamed :'를 사용하여 아이콘과 같은 작은 이미지에 유용하다는 것을 추가합니다. 앱의 수명이 다할 때까지 이미지가 표시되지 않는 한 큰 이미지에는'UIImage imageNamed :'를 사용하는 것은 좋지 않습니다. 일시적으로 큰 이미지는'UIImage imageWithContentsOfFile :'(또는 이와 유사한 것)과 함께로드되어야합니다. – rmaddy

+0

선생님, 모든 정보를 제공해 주셔서 감사합니다. 정확히 내가 필요로하는 것. – DCMaxxx