Это небольшая деталь, но каждый раз, когда я лениво загружаю что-то, я зацикливаюсь на этом. Оба эти метода приемлемы? Либо лучше? Предположим, что переменная имеет свойство сохранения.
Метод №1
(AnObject *)theObject{
if (theObject == nil){
theObject = [[AnObject createAnAutoreleasedObject] retain];
}
return theObject;
}
Метод №2
(AnObject *)theObject{
if (theObject == nil){
self.theObject = [AnObject createAnAutoreleasedObject];
}
return theObject;
}
Во-первых, я не уверен, можно ли получить доступ к другой функции доступа внутри средства доступа (не понимаю, почему нет, хотя). Но похоже, что установка переменной класса без прохождения через сеттер может быть столь же плохой, если сеттер делает что-то особенное (или если свойство изменяется на что-то, кроме сохранения, и геттер не проверяется).