扫码关注官方订阅号
如题~。~一个 iOS 项目中,如果使用了很多的 tag,例如按钮的 tag,会有什么弊端吗?求教详细说明!
欢迎选择我的课程,让我们一起见证您的进步~~
我觉得tag值过多,容易混乱,不好维护;而且通过tag值获取控件的方式是通过遍历所有子控件的tag值来完成的,效率会比较低下。
不会,能使用多少呢
tag有什么坏处呢?目前表现出来的坏处就是,使用太多容易混乱,在复杂度较高的程序中,可读性很差。间接的也体现了一些工程师,不爱使用enum枚举的一个陋习,满篇的xxx.tag = 1....之类的代码。
tag有什么好处呢?既然UIKit的class里面都有一个tag属性,肯定是有它存在的道理,tag顾名思义就是给视图打上标签,可以用来遍历子视图,而不用定义property或是nsarray来进行特定的定义或保存指针。举个例子,要你生成10个label,是使用循环生成方便还是通过property一个一个定义方便?当然使用循环+局部变量方便的多,如果这10个label同时存在交互,你就有三个选择:使用tag,或者使用nsarray进行保存指针,或者使用category或继承来自定义控件实现。这里就很明显了,使用tag需要的代码最少,当然也就成了众多工程师们偷懒的一种方式。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
我觉得tag值过多,容易混乱,不好维护;而且通过tag值获取控件的方式是通过遍历所有子控件的tag值来完成的,效率会比较低下。
不会,能使用多少呢
tag有什么坏处呢?目前表现出来的坏处就是,使用太多容易混乱,在复杂度较高的程序中,可读性很差。间接的也体现了一些工程师,不爱使用enum枚举的一个陋习,满篇的xxx.tag = 1....之类的代码。
tag有什么好处呢?既然UIKit的class里面都有一个tag属性,肯定是有它存在的道理,tag顾名思义就是给视图打上标签,可以用来遍历子视图,而不用定义property或是nsarray来进行特定的定义或保存指针。
举个例子,要你生成10个label,是使用循环生成方便还是通过property一个一个定义方便?当然使用循环+局部变量方便的多,如果这10个label同时存在交互,你就有三个选择:使用tag,或者使用nsarray进行保存指针,或者使用category或继承来自定义控件实现。这里就很明显了,使用tag需要的代码最少,当然也就成了众多工程师们偷懒的一种方式。