2013-06-10 1 views
0

Привет, когда вы делаете ленивый экземпляр, если вы делаете это в сеттер или геттер? Я слышал, что вы делаете это в getter, но что, если свойство задано до того, как оно вызвано геттером? Означает ли это, что свойство все еще ноль? Кроме того, если вы ленитесь создать экземпляр в геттере, и кто-то вызывает функцию setter, но вы не ленитесь создавать в сеттере, что такое значение свойства?Ленивый экземпляр в сеттер или геттер?

+0

Вы можете показать нам свой код? слишком абстрактно на данный момент – Raptor

+0

Это не связано ни с Xcode, ни с iOS 5, ни с iOS 6. –

ответ

0

Я думаю, что геттер - лучшее место. Если сеттер вызывается первым - ну, тогда он будет устанавливать свойство на то, что его просят сделать, и никто не заботится о том, каково было предыдущее значение свойства.

- (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]; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^