我需要从代码中创建一堆按钮并将它们添加到IBOutletConnection中。 到目前为止我还没能做到这一点。 当我在storyboard中执行它时,它工作得很好,但我无法以编程方式将按钮添加到集合中。 这是我的代码:
·H
@property (nonatomic, retain) IBOutletCollection(UIButton)NSMutableArray *buttonsArray;
的.m
-(void)createButton
{
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:nil
forControlEvents:UIControlEventTouchDown];
[self writeCloud:button];
button.frame = CGRectMake(-50, 80, 90, 60);
[self.view addSubview:button];
[_buttonsArray addObject:button];
}
我得到的错误是[_buttonsArray addObject:button];
说:
***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSArrayI addObject:]:无法识别的选择器发送到实例0x14559050'
有谁可以指出我做错了什么?
答案 0 :(得分:3)
因为数组不可变。您已在@property定义中指定了此项,但这并未使其成立(如果故事板unarchive将其设置为不可变数组)。
加载视图后我想你可以说:
self.buttonsArray = [self.buttonsArray mutableCopy];
然后你的代码应该可以工作。