2016-03-15 3 views
2

Рассмотрим этот код:Имеет ли смысл иметь необязательную слабую ссылку?

internal weak var someObj: SomeClass? = TheObject.Exists().Somewhere.obj 

Это кажется вполне разумным. Ссылка слабая - то есть мы не имеем никакого контроля над временем жизни некоторых Obj - и поэтому в какой-то момент ссылка может стать нулевой. Даже SomeClass! можно считать приемлемым, если вы знаете о возможном риске. Теперь, как об этом:

internal weak var anotherObj: AnotherClass = aDifferent.Source().ofObjects.obj 

компилятор даже не выдает предупреждение. Слабо говорит, что ссылка может указывать на объект, который был освобожден. С другой стороны, необязательный тип AnotherClass на самом деле не позволяет этого. Может ли такой код быть оправданным?

+0

Компиляторы жалуются на ошибку: «« слабая »переменная должна иметь необязательный тип« –

+0

По какой-то причине со мной не случилось. Я попробую снова. –

ответ

0

Компилятор не допускает нестационарных слабых.