ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ARC(Automatic Reference Counting)
    App/Objective-C 2017. 2. 13. 09:44



    ARC란?
    Automatic Reference Counting의 약자로 자동 참조 카운트라는 용어

    한마디로 자동으로 메모리 관리를 해준다는 개념이다.

    자바의 가비지컬렉션과 비슷한 개념이지만, 

    차이점은 프로그램할 때 코딩에 release코드를 넣지 않을 뿐이지

    기계어로 번역된 바이너리에는 컴파일러가 프로그래머 대신 넣어준 release코드로 동작이 진행된다.


    strong

    보통 객체를 생성하면 어느시점 죽을 때까지는 살아있다.

    또한 그 객체를 여러군데에서 필요에 의해 사용할 수 있다.

    그럴 경우 포인터로 이루어진 객체가 갈 곳 잃은, 집도 없은 댕글링 포인터가 될 수 있다.

    이를 방지하고자 strong속성을 프로퍼티에 설정한다.

    프로퍼티 속성이 strong이라면 대입되는 값을 소유하고자 하는 의도가 있는 것으로 판단되어, 그 객체의 참조 카운트를 하나 늘린다.

    그리고 그 객체의 사용이 다 되면 그 객체의 참조 카운트는 감소한다.


    weak

    프로퍼티에 weak이라 설정되어 있으면, 그 프로퍼티에 대입되는 객체는

    그 가치를 인정받지 못해 참조카운트가 늘어나지 않는다.

    댕글링 포인터에 빠질 위험이 있다.(전역변수와 비슷한 느낌)


    assign

    weak과 비슷하게 참조 카운트를 증가시키지는 않지만, 대상 객체가 사라질 경우

    여전히 기존의 포인터 주소를 가지고 있어 weak보다 더 위험하다.


    'App > Objective-C' 카테고리의 다른 글

    Protocol  (0) 2017.04.02
    GCM(Google Cloud Messaging)  (0) 2017.02.24
    AVAudioSession  (1) 2017.02.21
    new와 alloc의 차이  (0) 2017.02.13
    AppDelegate 함수 정리  (0) 2017.02.07
Designed by Tistory.