Langsame Ladezeit für benutzerdefiniertes UIView mit UITextView-Eigenschaft in Swift

Ich fragte ursprünglichdiese Frag. Ich hatte angenommen, dass der Grund für die langsame Ladezeit meiner benutzerdefinierten Ansicht darin lag, dass mehrere Ansichten übereinander gelegt wurden, oder vielleicht aufgrund einiger Rekursionsproblem. Nachdem ich jedoch immer mehr Code herausgeschnitten hatte, um zu sehen, was den Unterschied ausmachen würde, kam es darauf an, ob ich ein @ hattUITextView vorhanden oder nicht. Da die offensichtliche Ursache meines Problems so unterschiedlich ist, als ich es in meiner ersten Frage erwartet hatte, habe ich beschlossen, eine neue Frage zu beginnen, anstatt der alten ein langwieriges Update hinzuzufügen.

Ich habe mein Testprojekt mit zwei View Controllern eingerichtet. Eine Schaltfläche auf dem ersten Ansichts-Controller ruft einen Show-Übergang zum zweiten Ansichts-Controller auf. Auf dem zweiten Ansichtscontroller befindet sich meine benutzerdefinierte Ansicht. (Mithilfe des zweiten Ansichtscontrollers kann ich nachvollziehen, wie lange es gedauert hat, die benutzerdefinierte Ansicht zu laden.)

Benutzerdefinierter Ansichtscode:

import UIKit

@IBDesignable class UIMongolTextView: UIView {

    var textView = UITextView() // key line

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override init(frame: CGRect){
        super.init(frame: frame)
    }
}

ie Sie sehen können, ist der einzige Unterschied zu einemUIView ist das ich ein @ hinzugefügt haUITextView Eigentum. Und es ist diese benutzerdefinierte Ansicht, die sehr langsam geladen wird. Wenn ich das Allocations-Tool in Instruments ausführe, erhalte ich die folgenden Ergebnisse (997):

Allerdings, wenn ich die Zeile auskommentiere

    //var textView = UITextView()

then ich die benutzerdefinierte Ansicht lädt sehr schnell und hat nur eine Anzahl von 7.

Was geht hier vor sich? Ist es möglich ein @ zu benutzUITextView Eigenschaft in einer benutzerdefinierten Ansicht und vermeiden Sie diese langsame Ladezeit?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage