Soweit ich weiß, wenn eine Struktur mehr als eine Referenz als Eigenschaft gespeichert enthält, ist es (2 * Verweis) teurer, es zuzuweisen als eine Klasse. Ist es in lokalen Variablen der gleiche Fall?Struktur mit lokalen Referenzen vs Klasse mit lokalen Referenzen? Schnelle Leistung
struct ViewNavigationRouter {
private let firstViewController : UIViewController
init(firstViewController: UIViewController) {
self.firstViewController = firstViewController
}
func navigate(from: UIViewController) {
let viewController1 : UIViewController = xxx
let viewController2 : UIViewController = xxx
let viewController3 : UIViewController = xxx
}
}
class ViewNavigationRouter {
private let firstViewController : UIViewController
init(firstViewController: UIViewController) {
self.firstViewController = firstViewController
}
func navigate(from: UIViewController) {
let viewController1 : UIViewController = xxx
let viewController2 : UIViewController = xxx
let viewController3 : UIViewController = xxx
}
}
Vielen Dank im Voraus :)
Was meinen Sie mit "teurer zu reservieren"? Memory-weise? Hast du einen Link dazu, wo du davon erfahren hast? – Thilo
Ja, Sie können dieses Video darüber ansehen: https://developer.apple.com/videos/play/wwdc2016/416/ Wenn die Struktur Referenzen hat, wird jede von ihnen im Heap zugeordnet und es fügt 2 zusätzliche Wörter hinzu (Typ und Referenz zählen), auch die Struktur ist im Stapel zugeordnet – Saidre
Es scheint, dass der Abschnitt, auf den sich die Frage bezieht, etwa 15 Minuten in, wo sie darauf hinweisen, dass alle diese Referenzen haben, um eine Struktur mit N Referenzen innerhalb zu kopieren um ihre Retain-Anzahl zu erhöhen (wenn Sie jedoch einen weiteren Verweis auf eine Klasse mit N Referenzen hinzufügen, muss dies nicht passieren). – Thilo