그동안 수없이 사용했던 캡쳐리스트에 대해 오해하고 있었던 것 같아서 다시 정리한다.클로져를 사용할 때 같은 컨텍스트에 있는 변수들을 캡쳐리스트 없이 사용하게 되면 reference type이든, value type이든 무조건 reference로 캡쳐된다.캡쳐리스트를 사용하면 value type은 클로져 생성 시의 값을 그대로 복사하여 value를 캡쳐할 수 있다.단 reference type은 캡쳐 리스트를 사용해도 reference로 캡쳐가 되기 때문에 weak, unowned 를 사용하여 retain cycle을 피할 수 있도록 해야 한다. 명시하지 않으면 strong 캡쳐가 기본이다.(Edit)value type은 캡처리스트 없이 캡쳐해도 값 그대로 복사되는 것 같은데?이거 검증이 좀 필요한 것 같..
캡쳐리스트
그동안 수없이 사용했던 캡쳐리스트에 대해 오해하고 있었던 것 같아서 다시 정리한다.클로져를 사용할 때 같은 컨텍스트에 있는 변수들을 캡쳐리스트 없이 사용하게 되면 reference type이든, value type이든 무조건 reference로 캡쳐된다.캡쳐리스트를 사용하면 value type은 클로져 생성 시의 값을 그대로 복사하여 value를 캡쳐할 수 있다.단 reference type은 캡쳐 리스트를 사용해도 reference로 캡쳐가 되기 때문에 weak, unowned 를 사용하여 retain cycle을 피할 수 있도록 해야 한다. 명시하지 않으면 strong 캡쳐가 기본이다.(Edit)value type은 캡처리스트 없이 캡쳐해도 값 그대로 복사되는 것 같은데?이거 검증이 좀 필요한 것 같..
2023.11.17