iOS开发设置tag值需要注意的事项

2018-03-12  本文已影响0人  墨酒撕

最近在开发中碰到一个奇怪的bug,原因其实挺简单,但是当时没有往这个方面想,决定写下来避免以后再犯类似的错误。

这是接手别人的项目,然后这个地方的布局结构为:view+button(用来添加点击事件)+label(用来显示标题),点击全选会全部变为选中状态,点击某一个会单独变为选中状态。每一个view的tag对应当前数据在数组中的位置(0~count),每一个view里面的button的tag是固定的为101,这样在button的点击事件中先拿到button的superview,然后根据[subView viewWithTag:START_TAG + 1]取出当前点击的button,设置选中和反选状态。

但是现在发现每次点击全选程序都会崩溃,当然肯定不是必现的,不然以前是怎么上架的(捂脸。。),那就是跟这个账号返回的数据有关了,根据排查定位到是因为点击了tag值为101的view导致崩溃的,然后发现,由于button的值固定为101,那么当view的tag值也为101时,再通过[subView viewWithTag:START_TAG + 1]去获取button时,得到的并不是button而是view,因此在设置选中状态时就会导致程序崩溃。

上一篇下一篇

猜你喜欢

热点阅读