我有财产:
@property(nonatomic, strong) IBOutletCollection(UIView) NSMutableArray *allOpposition;
它在 IB 中连接到一堆子视图并合成。后来我有:
- (void)willRemoveSubview:(UIView *)subview
{
[[self allOpposition] removeObject:subview]; // Crash occurs here.
[super willRemoveSubview:subview];
}
当需要删除表示对立实体的视图时,我收到以下错误消息:
-[__NSArrayI removeObject:]: unrecognized selector sent to instance 0x88211c0
该对象不是nil
并且包含在集合中。为什么我的数组是不可变的?
UIView
备注:在这种情况下,Apple 很可能要求集合中的每个对象都是 type 。如果数组是完全可变的,我可以添加外来类型。我在这里没有找到太多文档,所以这是我的猜测。
备注:如果返回的数组最终是不可变的,我看不到允许传入可变数组的价值。为什么不接受不可变数组?