Ich lese, wenn Block eine Variable außerhalb ändern will, muss diese Variable mit dem Schlüsselwort __block
beschrieben werden, da es in Heap mit Block selbst kopiert werden muss.In iOS-Block, wie Variablen außerhalb ändern ohne Verwendung von __block
Aber was, wenn ich nicht __block
verwenden und immer noch die Variable ändern möchte, gibt es einen Weg?
habe ich einige denken, dass vielleicht ich diese Variable global
oder static
anstelle eines auto
ein, so dass sie in statischen Speicherbereich gespeichert werden eingestellt werden.
Oder kann ich es auf Zeiger und zeigen auf einige Inhalte, die auf Heap zugeordnet ist? Ich habe diesen Fall versucht, der nicht funktioniert hat, ich würde gerne wissen warum.
Was meinst du mit "muss sein" und "muss"? Was versuchst du genau zu vermeiden? Es muss nicht, aber es könnte mit der Leistung helfen –
@ JulianF.Weinert, mein Verständnis ist, dass für die zukünftige Verwendung, ARC automatisch Block mit seinen Variablen auf Heap kopieren würde, sonst würden beide Block und seine Variablen auf Stapel freigegeben werden. – Boris
Ja, Sie können externe globale oder statische Variablen innerhalb des Blocks ändern. – newacct