2014-06-21 2 views
1

안녕하세요 모든 사람들이 저에게 왜 강력한 참조가 아닌 대리자에 대해 _weak 참조를 사용하는 것이 좋을지 여부를 알려 드릴까요? 우리는 대표자를위한 강력한 참조를 사용할 수도 있습니다. 어떤 사람들은 어떤 상황에서 우리가 어떤 상황에서 대표자를 위해 _weak 레퍼런스를 사용해야 하는지를 간단한 방법으로 더 잘 설명하는 예제로 알려줄 것입니다. 왜 대리인과 _weak 참조를 사용하는 것이 좋습니다

나는 스택 오버 플로우

Is it ever Ok to have a 'strong' reference for a delegate?

에 관련된 질문 중 하나를 통해 갔다하지만 제대로 내 개념을 취소하지 않았다.

도움이 될 것입니다!

감사합니다. 위임에 __strong를 사용

답변

3

사이클 유지 만드는 것은 매우 쉽습니다 :

는, A가 B에 대한 강한 참조가 말하고 B의 대리자와 같은 일부 객체 세트 A를, 대리인이 강하게 참조되는 경우, 다음, 유지 사이클이 형성된다.

+0

우리는 _weak의 사용을 선호하는 곳과 강한 곳을 선호하는 곳의 예를 들려 주시겠습니까? – iShwar

+1

제 생각에는 위임 패턴에서 강력한 참조를 사용해서는 안됩니다. 위임을 유지해야하는 경우 위임 관계 외부의 일부 객체를 사용해야합니다. 대리자 패턴을 항상 약하게 사용하면 코드를 쉽게 디버깅하고 일관성있게 유지할 수 있습니다. – CarmeloS

0

예, 델리게이트에서 __strong을 사용하는 동안 유지주기를 생성하려면 동쪽입니다.

추가적으로, ARC에서 대리자를 사용하는 개체가 해제되는 동안 대리인은 약하게 사용되며 대리인은 자동으로 무효화됩니다.

+0

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmPractical.html 문제를 아주 잘 설명 할 수 있습니다. – Dennis

관련 문제