ios - swift中关于枚举的问题
迷茫
迷茫 2017-04-17 17:45:18
[iOS讨论组]
enum MenuButtonType:Int{
    case Return = 0, Caterine, AboutUs, Message, Logout
}

有如上枚举,为了代码的可读性,想用上面的枚举给一些类似的按钮做区别。

button.tag = MenuButtonType.Return // swift中比较强调类型 这样的附值是错误的

我暂时的想法是写一个分类

extension UIButton
{
    func transformEnumToTag (type:MenuButtonType)
    {
        switch type
        {
        case .Return:
            self.tag = 0
            ....
        }
    }
}

但是到时候又要转换回来,比较麻烦。
请问有什么好的方法

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
阿神
  1. UIButton命名规则加个字符区分

  2. 继承UIButton,加个属性区分

大家讲道理
enum MenuButtonType: Int {
    case Return = 0, Caterine, AboutUs, Message, Logout
}

let button = UIButton()
button.tag = MenuButtonType.Return.rawValue
print(button.tag)    //0

你要的是不是这样,加个rawValue就能获取到Return的值

高洛峰

你这种情况,就应该有一个 MenuButton 去继承 UIButton,然后内部有一个属性是 type。

你这样的解决方式,非常的不优雅、不正确的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号