我正在尝试从一个可变数组中删除和对象 - 一个遍历每一帧的数组(参见刻度:方法)。
我正进入(状态
*集合 <__NSArrayM: 0xaa99cb0> 在枚举时发生了变异。
例外。
所以我添加 @synchronized()
了锁定它不被其他线程触及,但它仍然失败。
- (void)addEventSubscriber:(id <EventSubscriber>)eventSubscriber
{
[_eventSubscribers addObject:eventSubscriber];
}
- (void)removeEventSubscriber:(id <EventSubscriber>)eventSubscriber
{
@synchronized(_eventSubscribers) // Not working.
{
[_eventSubscribers removeObject:eventSubscriber];
}
}
- (void)tick:(ccTime)dt
{
for (id <EventSubscriber> subscriber in _eventSubscribers)
{
if ([subscriber respondsToSelector:@selector(tick:)])
{
[subscriber tick:dt];
}
}
}