Swift-Variable verwendet, innerhalb Ihrer eigenen anfänglichen Wert

Ich versuche zu initialisieren eines Objekts, und ich bekomme diese Fehlermeldung: Variable used within its own initial value

Hier ist mein code:

Swift-Variable verwendet, innerhalb Ihrer eigenen anfänglichen Wert

Warum kann ich das nicht so?

  • Klassennamen beginnen mit einem Großbuchstaben. Instanz-Namen beginnen mit einem Kleinbuchstaben. Es gibt einen Grund dafür. public class Entry: NSObject. Having said that, looking at Eintrag Klasse sollte es wohl ein struct.
  • Warum geben Sie der öffentlichkeit explizit überall ?
  • aus dem Speicher Verbrauch Perspektive, Eintrag sollte man eher eine Klasse (das ist der Typ der Referenz) und dann ein struct (das ist ein Wert, Typ und wird kopiert werden, die alle die Weise herum, wenn Sie neue "var/let Referenzen" zu erscheinen). Auch ich denke, dass der Eintrag sein soll, eine Unterklasse von NSObject (aus Gründen der KVO Nutzung oder was auch immer).
  • Ich bin nicht einverstanden. Der Speicherverbrauch dieser Daten ist minimal zu dem Punkt des seins zu vernachlässigen. Mit Referenz-Typen können aber auch komplexer sein, wie Sie bekommen können, in Situationen, wo mehrere Teile von er app können die Daten verändert werden an der gleichen Zeit. Es schwieriger wird, eine Quelle der "Wahrheit". Mit value-type-Objekte dies ist nicht ein Problem, und Teile der app benötigen, zu mutieren geschrieben werden können, mit der Absicht, mutiert und vorbei an mutierten Daten zurück etc... es ist immer eine Quelle der Wahrheit.
  • wie gesagt, es ist alles über den Speicherverbrauch allein. Ich habe nicht gesprochen über die Veränderlichkeit überhaupt. Ihre Sicht ist so gut wie meine, nur es betrifft einen ganz anderen Aspekt.
  • ja, aber wie, antwortete ich... Es ist nicht über das Gedächtnis überhaupt. Wenn Sie über 1000 events und Sie sind Referenz-Typ bestimmen Sie dann auf Bearbeiten, dann haben Sie 1000 Veranstaltungen. Wenn Sie Wert geben, dann haben Sie 1001 Veranstaltungen. Selbst dann, die Speicher-Grenzen des aktuellen Geräte würden es ermöglichen, halten Zehntausende von Veranstaltungen im Speicher. Sie sind so trivial, dass Sie nehmen sehr wenig Speicher. Die Vorteile, die Wert geben Sie die Daten weit hinaus wiegt die geringe Speichernutzung zu verringern.
  • es ist eine WWDC-video, dass ich finden kann, ein link für Sie, wenn Sie möchten. Es erklärt es viel besser als ich kann in die Kommentare. 🙂
  • wäre nett von dir 🙂
  • Sitzung 414: Building better apps mit Wert-Typen. Von der diesjährigen wwdc.
  • vielen Dank für den Hinweis. Ich werde auf jeden Fall beobachten und überdenken unsere Diskussion.
  • okay, das video erklärt, dass ein sctruct aus strings teilt die string-Felder unter all den Kopien einer Instanz (hinter den kulissen), bis es auf die verwiesen wird, mit var und mutiert. Dies ist nicht offensichtlich und ist eine Art intrinsische bereitgestellt durch die Swift-runtime für die variable-Länge-Wert-Typen. Vielen Dank für das video wieder, es hat mir sehr geholfen.

Schreibe einen Kommentar