首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IBOutletCollection of UIButtons在viewDidLoad之后为空

IBOutletCollection of UIButtons在viewDidLoad之后为空
EN

Stack Overflow用户
提问于 2013-04-06 10:08:40
回答 1查看 2.2K关注 0票数 0

正如标题中所说的,我的IBOutletCollection of UIButtons在viewDidLoad之后是空的。我以同样的方式创建了一个IBOutletCollection of UILabels,而且这个非常完美。你知道怎么解决这个问题吗,或者我犯了什么错误?

以下是守则:

代码语言:javascript
复制
@property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *lbl_save;
@property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *lbl_cancel;
@property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *lbl_edit;

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *btn_changeData;
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *btn_save;
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *btn_cancel;

按钮被放置在xib中,并正确地链接到相应的插座。就像标签一样。

我按其中一个按钮的时间是第一次,我想访问代码中的按钮。

代码语言:javascript
复制
for (UIButton *btn in _btn_changeData) {
    btn.hidden = NO;
    btn.userInteractionEnabled = YES;
}
for (UIButton *btn in _btn_save) {
    btn.hidden = YES;
    btn.userInteractionEnabled = NO;
}
for (UIButton *btn in _btn_cancel) {
    btn.hidden = YES;
    btn.userInteractionEnabled = NO;
}
for (UILabel *lbl in _lbl_save) {
    lbl.hidden = YES;
}
for (UILabel *lbl in _lbl_cancel) {
    lbl.hidden = YES;
}
for (UILabel *lbl in _lbl_edit) {
    lbl.hidden = NO;
}

这也是我得到以下异常并意识到我的Button OUtletcollection为空的原因。

-UIButton countByEnumeratingWithState:objects:count::无法识别的选择器发送到实例0xa8a8850

我既不覆盖outletcollection,也不更改按钮的属性。只是标签在集合中而按钮不在。我也不知道为什么。

提前找人帮忙。

Mav

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-06 10:54:25

我首先想到的是,这些属性没有得到正确的合成。_btn_changeData真的是btn_changeData属性背后的伊瓦尔吗?

第二个想法是我在调试别人的代码时看到的。例如,如果控制器引用自身,则可以创建两个控制器实例。很明显,只有他们中的一些人才会把插座连接起来。确保只创建实例。

对于调试来说,自己实现setter可能是个好主意。

编辑:重读后,问题实际上是不同的,他们说你的问题。错误消息-[UIButton countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0xa8a8850

并不意味着_btn_changeData是一个空数组。这意味着存在一个UIButton而不是一个数组。尽管如此,您应该检查是否在某个地方覆盖_btn_changeData中的数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15849575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档