Swift verwendet "Automatische Referenzzählung", um Objekte, die nicht mehr referenziert sind und daher nicht mehr benötigt werden, freizugeben. Der Swift Sprachführer [1] besagt Folgendes:Möglichkeit von ARC Überlauf in Swift?
Jedes Mal, wenn eine neue Instanz einer Klasse erstellen, ARC einen Teil des Speichers Informationen über diese Instanz zu speichern zuordnet. Dieser Speicher enthält Informationen über [...] Werte aller gespeicherten Eigenschaften, die mit dieser Instanz verknüpft sind.
Ich nehme an, dass der Referenzzähler als Integer gespeichert wird. Könnte der Referenzzähler dann unter einem Überlauf leiden? Wenn dies der Fall ist, welche Auswirkungen hätte dies auf mein Programm, würden die Objekte, die immer noch von anderen referenziert werden, einfach freigegeben?
Als ein Beispiel: wenn der Zähler zum Beispiel eine vorzeichenlose 2-Byte-Ganzzahl wäre, würde dies die obere Grenze von Referenzen auf ein Objekt (bei noch immer korrekter Referenzzählung) bei etwa 130k setzen. Sobald diese Obergrenze erreicht ist und das Objekt erneut referenziert wird, würde der Zähler um eins erhöht und wieder auf 0 gesetzt.
4294967296 Referenzen? Wowz. Haben Sie ... genug Speicher, um das zu tun? – Zizouz212
Mir ist bewusst, dass die Frage eher hypothetisch ist, das Verhalten in diesem Fall würde mich dennoch interessieren;) – Benjamin