我有一个案例,我的集合在枚举时会发生突变。但这在 iOS 中是不允许的。进一步调查发现 NSFastEnumerationState 是 ac 类型结构,如下所示
typedef struct {
unsigned long state;
id *itemsPtr;
unsigned long *mutationsPtr;
unsigned long extra[5];
} NSFastEnumerationState;
所以 state->mutationPtr 表示集合是否发生了变异,基于哪些异常被抛出。我们是否可以覆盖这个来表明集合没有发生变异(即使它已经发生了变异),这样就不会抛出异常。通过覆盖我们可以在枚举时实现突变。我不知道这是否是一个正确的想法。请让我知道您的建议。