Слабая или сильная декларация свойства при возврате значения связанного представления?

Я прочитал ответ переполнения стека, который сравнил strong свойства на объекте поводкам на собаку. Для каждого объявления, сделанного с сильной ссылкой, новый поводок добавляется к собаке. Как только каждый, кто выгуливает собаку, идет домой (или когда каждый объект с сильной ссылкой освобождается), собака (выделенная память) может быть освобождена. Я думаю, что так оно и было. Я прошу прощения у оригинального постера, если я полностью убил это. Во всяком случае, вот моя ситуация. у меня есть NSDocument подкласс, который имеет свойство под названием backgroundColor, Вот что мой NSDocument подкласс выполняет аксессор / мутатор:

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

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

Итак, моему объекту документа на самом деле не принадлежит "поводок", но в то же время важно, чтобы собака продолжала ходить, иначе у документа не будет фонового цвета. Теперь я думаю, что просто путаю себя с метафорой. В конце концов, я просто хочу знать, объявлять ли "перенаправленные" свойства как strong или же weak,

Спасибо!

2 ответа

Решение

Не объявляйте это как собственность. Предоставления реализаций getter и setter как у вас достаточно. Имущество здесь не поможет, потому что нет смысла хранить.

Так как у вас есть свой собственный сеттер и геттер, и вы не используете свойство ivar, strong или же weak не имеет никакого значения. Ивар никогда не читается и не присваивается.

Я бы, наверное, пошел с strong так как [UIWindow backgroundColor] является strong но weak будет работать точно так же.

Другие вопросы по тегам