Objective Cでは、ViewControllerにUIKitオブジェクトプロパティがある場合、viewと言うだけで、viewDidLoadでインスタンス化され、その後にサブビューに追加されます。それをメモリから取り除いて、removeFromSuperview()とオブジェクトをnilに設定する必要があります(私が間違っていない場合は...)ビュー、ARC、Objective CとSwiftとの相違点を削除する
しかし、Swiftでは、オプションの型nilの値を保持できます。
私のアプリケーション内でUILabelsやUIViewのようなものをアニメーション化し、後でそれらを消して(ユーザーとメモリから)削除したいのであれば、そのUIKitオブジェクトはremoveFromSuperView()で十分です?または、私はアニメーション化しようとしているすべてのオブジェクトをremoveFromSuperView()にしてからnilに設定する必要がありますか?
私の貧弱な発音をお詫びします。さらなる明確化が必要な場合は、私に知らせてください。あなたのご意見をありがとうございます。
サブビューは、親オブジェクトの後で初期化されるため、通常はオプションです(所有しているインスタンスの初期化が完了する前に、非オプションのプロパティに値を設定する必要があります)。そのため、たとえば'@IBOutlet weak var myLabel:UILabel!'常に( '?'もやっているが便利ではない) –
@NicolasMiariは正しい。私は2つのことを追加したいと思います:1)UIView型のプロパティをオプションにしない理由はほとんどありません。あなたのUIViewControllerの初期化を単純化し、2)removeFromSuperViewは単にUIView.removeSubview(:UIView)を呼び出します。オブジェクトをnilに設定しません。 – dylanthelion