私はプロパティを持っています:
@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はコレクション内の各オブジェクトがタイプである必要がある可能性があります。配列が完全に変更可能であれば、おそらく外部型を追加できます。私はここで多くのドキュメントを見つけていないので、これは私の側の推測です。
備考:返された配列が最終的に不変である場合に、可変配列を渡すことを許可することの価値はわかりません。不変の配列を受け入れないのはなぜですか?