2016-07-11 3 views
1

Я только что узнал, что если вы не сделаете его слабым, ваш viewControllers не будет освобожден (Сильная ссылка). Означает ли это, что каждый раз, когда вы закрываете приложение, вы все равно оставляете в памяти некоторые «мусор» (viewControllers), если вы не сделали его слабым? Если это так, верно ли, что «слабый» должен быть обязательным для «Я»?Когда должна быть «я» ссылка в IOS?

+4

Хорошей отправной точкой будет https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html – zneak

+1

Если у вас есть сомнения, используйте инструмент утечки памяти инструментов. Можно использовать циклы сохранения в объектах, которые должны быть слабыми ссылками, а не сильными при использовании ARC. «слабый» обычно используется для свойств делегатов, на которые ссылаются в одном классе, но определяется в другом классе, который имеет свой собственный логический путь для того, когда он будет освобожден. – jcpennypincher

ответ

1

Это зависит от того, что само относится к вашей архитектуре. Если self относится к типу, который должен быть сохранен в вашем приложении, тогда да, он останется, когда приложение перейдет на передний план. Вы можете быть уверены, что это необходимо, а также убедитесь, что вы избегаете сильных циклов удержания.