Meine Frage, ist sehr einfach, denke ich, aber ich kann keine direkten Informationen zu bestätigen oder zu verweigern.SKNode vergleichbar mit NSMutableArray, GCD, Aufzählung
Meine Frage ist:
Wenn Aufzählung durch SKNodes, sollten sie vorsichtig mit behandelt werden:
SKNode *someTreeNode;
NSArray *someArray = [someTreeNode children];
[someArray enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
//blah blah
}];
Wie NSMutableArray?
Wenn Sie GCD verwenden und den SKNode (someTreeNode) manipulieren, also Eltern hinzufügen und entfernen? . (Zusätzlich konnte ich Dispatch Barrieren verwendet beim Laden EinArray zu blockieren
aber alles in allem der realen niedrigste Form dieser Frage ist:
Ist SKNode Thread-sicher wie NSArray, oder ist es unsicher, wie NSMutableArray
? es ist unsicher erzähltmir Mein Instinkt aber wie ich schon sagte, ich kann diese ...
Dank
Es ist einfach. Die Frage ist: Ist das Objekt veränderlich oder unveränderlich? Selbst das Aufzählen von 'NSArray' ist nur Thread-sicher aus der Perspektive des Containers. Es gibt nichts zu verhindern, dass Objekte innerhalb des Arrays von mehreren gleichzeitigen Threads geändert werden. – Avi
Nachdem ich hin und her meine Enumerationen von NSArray-Enumerationen in SKNode-Enumerationen geändert habe, stürze ich nicht ab, während ich SKNode-Enumerationen mache. Also werde ich sie an meiner Seite "sicher" nennen, wenn ich nicht wieder ein paar Abstürze bekomme, die ich noch nicht bekommen habe. Der Grund, warum ich diese Frage gestellt habe, war, dass ich mit einigen NSMutableArrays gearbeitet habe und am Wochenende in ernsthafte Aufzählungsfehler geraten bin. Ich debuggte sie und ich fing an über SKNode nachzudenken und benutzte das Kinder-Array. Jetzt habe ich sie auf Standard-Enumerationsmethoden zurückgesetzt, ohne Children Array zu verwenden, und es geht ihnen gut! – rezwits