ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [메모리 절약 Tip] 상수 프로퍼티(variable)가 많다면 프로퍼티(variable) 대신 메소드를 써보자.
    코딩은 주댕이로 2016. 9. 9. 11:35

    iOS 개발 관점에서 작성되어 혼동되는 단어가 있을 수 있습니다.


    View관련 클래스에는 상수가 많이 들어간다. 이미지의 가로Size, 세로Size, 최대 이미지 갯수, 폰트, 컬러 등등..


    이렇게 많은 상수들을 해당 클래스에서 모두 사용한다면 상관 없지만, 사용하지도 않는 프로퍼티들 때문에 메모리 낭비를 하는 경우가 발생할 수 있다.

    안쓰는건 선언하지 않으면 되잖아? 라고 생각이 드는게 당연한데, 아래의 상황을 떠올려보자.


    [SuperView] - 상수30개 보유

    |

    [SubViewClass1(사용상수 10개)]    [SubViewClass2(사용상수 7개)]    [SubViewClass3(사용상수 2개)] .....


    이런 구조에서 모든 Cell의 superView가 되는 SuperCell에 Cell관련 상수들을 두는 것이 관리하기가 편하기에, SuperCell에 무수히 많은 상수를 두게 된다.



      

    실생활에서 찾아보면 이런 경우는 페이스북의 피드에서 발생할 수 있겠다.

    텍스트만 있는 Cell의 경우에는 image관련 상수는 필요없고, 이미지만 있는 Cell의 경우에는 text나 font관련 상수가 필요없을 것이다.

    그러면 SubClass1에서는 프로퍼티 20개에 해당하는 메모리낭비가 발생하고, SubClass3에서는 무려 28개에 해당하는 메모리낭비가 발생하게 된다.




    실제로 내가 작성했던 코드(.h파일과 .m파일)


    이를 수정하기 위해 프로퍼티 대신 메소드로 전환했다.(.m파일)


    이제 SubClass에서는 불필요한 프로퍼티 때문에 메모리낭비를 하는 일이 없어졌다.

    얼마 안되는 메모리겠지만,, 뭐 이런 방법도 있는 것 같다.

Designed by Tistory.