Мой вопрос, очень простой, я думаю, но я не могу найти прямую информацию, чтобы подтвердить или опровергнуть.SKNode, сравнимый с NSMutableArray, GCD, перечисление
Мой вопрос:
Когда перечисление через SKNodes, они должны быть обработаны деликатно использованием:
SKNode *someTreeNode;
NSArray *someArray = [someTreeNode children];
[someArray enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
//blah blah
}];
Like NSMutableArray?
Если вы используете GCD и управляете SKNode (someTreeNode), то есть добавляете и удаляете родителя? . (Кроме того, я мог бы использовать диспетчерских барьеры для блокирования во время загрузки SomeArray
Но в целом реальный низшая форма этого вопроса:
Является SKNode поточно как NSArray, или это небезопасно, как NSMutableArray
?Мой инстинкт подсказывает мне, что это небезопасно, но, как я сказал, что я не могу подтвердить или опровергнуть это ...
Благодаря
Это просто. Вопрос в том, является ли объект изменчивым или неизменным? Даже перечисление «NSArray» является только потокобезопасным с точки зрения контейнера. Нет ничего, что помешало бы объектам в массиве быть из нескольких параллельных потоков. – Avi
После того, как я перебирал перечисления NSArray в перечисления SKNode, у меня нет сбоев при выполнении перечислений SKNode. Поэтому в конце концов я назову их «безопасными», если я снова не смогу попасть в некоторые аварии, которых я еще не получил. Причина, по которой я задавала этот вопрос, заключалась в том, что я работал с некоторыми NSMutableArrays и в прошлые выходные попал в серьезные ошибки перечисления. Я отлаживал их, и я начал думать о SKNode и использовал дочерний массив. Теперь я вернул их к стандартным методам перечисления, не используя Children Array, и они в порядке! – rezwits