2013-06-10 2 views
0

안녕하세요 당신은 게으른 인스턴스 생성을 할 때 setter 또는 getter에서해야합니까? 나는 당신이 getter에서 그것을한다고 들었다. 그러나 그것이 getter에 의해 요구되기 전에 속성이 설정된다면 어떨까? 그 재산은 여전히 ​​무효라는 뜻인가요? 또한 getter에서 인스턴스 생성을 게으른 경우 다른 사람이 setter 함수를 호출하지만 setter에서 게으른 인스턴스화를 수행하지 않으면 속성 값이 무엇입니까?Setter 또는 getter에서의 지연 인스턴스화?

+0

코드를 표시 할 수 있습니까? 너무 추상적 인 지금은 – Raptor

+0

이것은 Xcode 나 iOS 5, iOS 6과 관련이 없습니다. –

답변

0

게터가 더 좋은 곳이라고 생각합니다. setter가 first-well이라고 불리면, 그렇게하도록 요구되는 것이 무엇이든 속성을 설정할 것이고, 아무도 그 속성의 이전 값이 무엇인지 신경 쓰지 않을 것이다.

- (id)foo 
{ 
    if (_foo == nil) { 
     _foo = [[Foo alloc] init]; 
    } 
    return _foo; 
} 

- (void)setFoo:(id)f 
{ 
    if (_foo != f) { 
     [_foo release]; // Yay, messaging nil is safe! 
     _foo = [f retain]; 
    } 
} 
관련 문제