Как Apple сказала в «Swift Programming Language», кажется, мы должны предпочесть unowned
, а не weak
, когда это возможно:
Если захваченная ссылка никогда не станет нулевой, ее всегда следует захватывать как бесхозную ссылку, а не как слабую.
Из раздела «Слабые и неизвестные ссылки» на этом страница
Я знал разницу между этими двумя. Но мне любопытно, есть ли веские причины предпочесть unowned
, а не weak
? Я думаю, что weak
намного безопаснее, и мы всегда можем просто написать [weak obj]
и дополнительную проверку привязки, не задумываясь о возможности существования obj
.
Это связано с некоторыми соображениями производительности или с чем-то, что я упустил? Или можно все время использовать weak
вместо unowned
?