1

나는 개에서 가죽 끈에 물체의 속성을 비교 strong 비교 스택 오버플로 대답을 읽었습니다. 강한 참조로 만들어진 모든 선언에 대해 새 가죽 끈이 개에 추가됩니다. 개를 산책하는 모든 사람이 집으로 돌아 오면 (또는 강력한 참조가있는 모든 개체가 할당 해제되면) 개 (할당 된 메모리)를 해제 할 수 있습니다. 나는 그것이 그것이 어떻게 갔는지 생각한다. 내가 완전히 도살한다면 원래의 포스터에 사과한다. 어쨌든, 여기 내 상황이야. backgroundColor이라는 속성이있는 NSDocument 하위 클래스가 있습니다. "가죽 끈"관련 뷰의 값을 반환 할 때 약하거나 강력한 속성 선언이 있습니까?

- (NSColor *)backgroundColor 
{ 
    return self.window.backgroundColor; 
} 

- (void)setBackgroundColor:(NSColor *)color 
{ 
    self.window.backgroundColor = color; 
} 

그래서, 내 문서 객체가 실제로 보유하고 있지 않습니다하지만 개를 산책을 유지하는 동시에, 그것은 중요 : 여기 내 NSDocument 서브 클래스가 현명한 뮤 테이터 /를 accessor-하고있는거야 문서에 배경색이 없습니다. 이제 저는 제가 은유와 혼동하고 있다고 생각합니다. 마지막 날에 "전달 된"속성을 strong 또는 weak으로 선언할지 여부를 알고 싶습니다.

감사합니다.

답변

3

속성으로 선언하지 마십시오. 보유하고있는 getter 및 setter 구현을 제공하면 충분합니다. 저장할 가치가 없기 때문에 부동산은 여기 도움이되지 않습니다.

+0

글쎄, 그건 의미가있다. 나는 물건을 너무 많이 사고할수록 그들을 간과합니다. 나는 후속 질문을 가지고있다. 재산이없는 KVC/KVO/바인딩이 있습니까? –

+0

http://www.objc.io/issue-7/key-value-coding-and-observing.html에 따르면 그렇습니다. – NathanAldenSr

+0

젠장, 너 빠르다! 잘 했어. 고맙습니다. 추신 objc.io는 각 기사의 깊이 측면에서 놀랍습니다. 와우 자. –

2

자신 만의 setter 및 getter가 있고 속성 ivar을 사용하지 않으므로 strong 또는 weak은 중요하지 않습니다. ivar는 읽히거나 할당되지 않습니다.

strong[UIWindow backgroundColor]strong이지만 정확히 동일하게 작동하므로 나는 아마도 strong으로 갈 것입니다.

+0

'강한'이 기본값이라는 것을 읽은 것 같습니다. 맞습니까? –

+0

ARC에서 기능적으로 '강'과 동일한'retain'이 기본값이라고 생각합니다. – NathanAldenSr