Swiftの参照にはstrongとweakに加えて、unownedというのが追加されているんですね。ふーん。
って何で増えてんの?!Swiftになったら簡単になるんじゃなかったんですかー!めんどくさーい!!
…と初めて見た時は思ったのですが、これはどうやらオプショナル型に思想を合わせた結果のように思われます。
循環参照が発生する設計において、
- マジンガーZに対するジェットスクランダーのように、無くても正常に動作できるものについては片方をweak-オプショナル型参照にする。
- ゲッターロボに対するゲッター炉のように、必要欠くべからざるものについては片方をunowned-非オプショナル型参照にする。
みたいな?
ソースコードには『実装』ではなく『設計』を明示的に記述させる!それがSwiftの『思想』ッ!そして『流儀』ィィッ!!…なんでしょうか。