2013-05-19 2 views
2

BNR 3 판을 읽고 있는데, 하위 호환성을 위해 기본적으로 weak 대신 delegateunsafe unretained이라고 표시되어 있습니다. 그리고 더 이상 오래된 iOS 버전을 가지고있는 사람이 많지 않기 때문에 이것이 Xcode의 최신 버전에도 적용되는지 궁금합니다.아직 대리인이 안전하지 않은가?

+0

대상이 'iOS5 +'인 경우 이전에 '약함'을 사용할 수도있었습니다. – holex

답변

4

위임자 널링은 iOS 5.0 이상에서 지원됩니다. 5.0 이상을 타겟팅하는 경우 weak을 사용하십시오.

2

대의원? 시스템의 많은 클래스는 안전하지 않은 유지 관리되지 않은 대리자를 여러 가지 이유로 보유합니다. 수업에는 약한 수업이있을 것입니다.

+0

그것은 CLLocationManagerDelegate였습니다 – stumped

+0

"사용하면 안된다"는 것이 무슨 뜻인지 몰라요. 시스템 프레임 워크에서 대리인의 약점을 제어하지는 못하지만 약점을 선택할 수는 없습니다. unsafe_unretained 대리자가있는 클래스의 예를 원한다면 NSTableView의 대리자는 안전하지 않은 상태입니다. –

+0

OK, 그래서 OP는 항상 '약한'을 사용해야합니까? 그런 경우 왜'unsafe_unretained'를 불러내 는가? 애플 코드에만 내부적으로 사용되고 내부 구현의 세부 사항 일 뿐인가? 대답은 더 약화되지 않고 '약한'단어가 사용되어서는 안되는 경우가 있음을 의미합니다. 대답의 전체'unsafe_unretained' 부분은 FUD를 단지'약한 'IMO의 사용에 추가합니다. – zaph

관련 문제