我有属性:
@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
,在这种情况下。 如果数组是完全可以想象的可变我可以添加外类型。 我还没有发现太多的文件在这里,所以这是我的一部分投机。
备注:我没有看到传递在允许可变数组的值,如果返回的数组是最终不可改变的。 为什么不接受不可改变的阵列?