OptionSet(静态属性集合)

本文介绍了一个使用 Swift 的 OptionSet 类型实现的消息类型枚举,该枚举支持多种消息类型如文本、图片、点赞等,并演示了如何通过位操作来判断特定类型是否存在于集合中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

struct YTMsgType:OptionSet {

    

    public var rawValue:UInt

    

    public static var text = YTMsgType(rawValue:1<<0)  

    

    public static var  img = YTMsgType(rawValue:1<<1

    

    public static var  praise = YTMsgType(rawValue:1<<2

    

    public static var  award = YTMsgType(rawValue:1<<3

    

    public static var  review = YTMsgType(rawValue:1<<4

    

    public static var  delete = YTMsgType(rawValue:1<<5)

}

//

set = [.text, .praise, .img, .review]

//判断

ifcellContain.rawValue &YTMsgType.delete.rawValue > 0 {

    print("---delete")

}

//......



### 实现省市二级联动多选功能 在前端实现省市二级联动的多选功能可以采用 Vue.js 结合 Element Plus 的 `el-cascader` 组件来完成。此方法适用于需要展示并选择多个省份及其下属城市的应用场景。 #### 使用 el-cascader 组件配置属性 为了支持多选模式,需设置 `props.multiple=true` 属性[^2]。这允许用户在同一级联选择器内选取多个选项。对于懒加载的数据源,则应定义好相应的异步函数用于获取子项数据,并通过 `loadData` 方法触发加载过程。 #### 数据准备 构建适合级联选择器使用的树形结构化数据集非常重要。每条记录应当至少包含三个字段:value(唯一标识符),label(显示名称), children(下一层级数组)。当处理的是静态JSON文件时可以直接导入;如果是API接口返回的结果则要确保转换成上述格式再传入组件。 #### HTML模板部分 ```html <template> <div id="app"> <!-- 级联选择框 --> <el-cascader v-model="selectedOptions" :options="cityData" clearable multiple></el-cascader> <!-- 显示已选项 --> <ul> <li v-for="(item, index) in selectedItems" :key="index">{{ item }}</li> </ul> </div> </template> ``` #### JavaScript逻辑编写 ```javascript <script setup lang="ts"> import { ref } from 'vue'; // 假设 cityData 是预先定义好的省市数据集合 const cityData = [ { value: 'zhejiang', label: '浙江', children: [ { value: 'hangzhou', label: '杭州' }, ... ] } ]; let selectedOptions = ref([]); // 当前被选中的值 let selectedItems = computed(() => { let result = []; const findLabelByValue = (data, values) => { data.forEach(item => { if (!values.length || !values.includes(item.value)) return; result.push(item.label); if (item.children && item.children.length > 0){ findLabelByValue(item.children, values.slice(1)); } }); }; selectedOptions.value.forEach(optionSet => findLabelByValue(cityData, optionSet.split('/')) ); return result; }); </script> ``` 以上代码片段展示了如何利用Vue组合式API创建响应式的双向绑定变量 `selectedOptions` 来存储用户的输入状态,并计算出实际所代表的文字描述存放在 `selectedItems` 中以便于后续操作或呈现给用户查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值