Почему рекомендуется использовать _weak ссылку с делегатами

Привет всем, кто-нибудь уточнит мне, почему рекомендуется использовать _слабую ссылку для делегатов, а не строгую ссылку? хотя мы также можем использовать строгую ссылку для делегатов. Кто-то, пожалуйста, расскажет мне с лучшим и описательным примером простым способом: в каких ситуациях мы должны использовать строгую ссылку и в каких ситуациях мы должны использовать _слабую ссылку для делегатов.

Я прошел один из связанных вопросов о переполнении стека

Хорошо ли когда-нибудь иметь "сильную" ссылку на делегата?

но это не прояснило мою концепцию должным образом.

Любая помощь будет высоко оценена!

Благодарю.

2 ответа

С помощью __strong На делегате очень легко создать сохраняющий цикл:

скажем, A имеет сильную ссылку на B, и некоторые объекты устанавливают A в качестве делегата B, если на делегат ссылаются строго, то формируется цикл сохранения.

Да, восточно создавать цикл сохранения, используя __strong для делегата.

Кроме того, в ARC мы используем слабый делегат ,, в то время как объект, использующий делегат, освобождается deleg делегат автоматически будет равен нулю.

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