热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

如何在Swift中确认可识别协议的枚举?

如何解决《如何在Swift中确认可识别协议的枚举?》经验,为你挑选了1个好方法。



1> Mojtaba Hoss..:

当某物符合时Identifiable,它必须返回可以被该物识别的东西。因此,您应该返回该情况下唯一的东西。对于Stringbase enumrawValue是您的最佳选择:

extension Data: Identifiable {
    var id: String { rawValue }
}

枚举通常也可以通过自身来标识:

extension Data: Identifiable {
    var id: Data { self }
}

注意1:如果返回的东西总是唯一的,例如UUID,这意味着每次获取对象时都会得到一个新对象,这将杀死可重用性,并可能导致史诗般的内存和布局过程使用。

注意2:从Swift 5.1开始,不需要单行闭包return

注3:尽量不要使用诸如Data您自己的类型之类的全局已知名称。至少像这样使用命名空间MyCustomNameSpace.Data

内联模式

您可以通过元素的键路径之一使任何集合内联成为可迭代的:

例如self

List (Data.allCases, id:\.self)

或任何其他兼容的键路径:

List (Data.allCases, id:\.rawValue)


推荐阅读
  • 解决UIBarButtonItem 边缘显示异常的问题分析与优化方案
    在iOS开发中,针对UIBarButtonItem边缘显示异常的问题进行了深入分析,并提出了一系列优化方案。通过自定义视图和调整布局约束,有效解决了按钮在不同设备和屏幕尺寸下的显示问题,提升了用户体验。具体方法包括使用AutoLayout进行动态调整,以及对按钮的内边距和外边距进行精细控制,确保按钮在各种场景下都能保持良好的视觉效果。 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • [译]  OS X 和 iOS 的测绘框架Core Plot 入门教程
    [译] OS X 和 iOS 的测绘框架Core Plot 入门教程 ... [详细]
  • SoIwanttomakesomethinglikethisusingswiftandxcode:所以我想用swift和xcode制作这样的东西:WhereIget ... [详细]
  • PyThon_Swift 势必取代 Python?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Swift势必取代Python?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 我正在尝试使SwiftUI中的按钮在文本旁边显示图像。但是,即使不在按钮中时图像 ... [详细]
  • 导读:本文来自SwiftGG翻译组,作者@walkingway基于苹果Swift官方博客中TedKremenek所撰写的“Swift2.2Released!”文章进行了关于Swift2. ... [详细]
  • 本文介绍了用户界面(User Interface, UI)的基本概念,以及在iOS应用程序中UIView及其子类的重要性和使用方式。文章详细探讨了UIView如何作为用户交互的核心组件,以及它与其他UI控件和业务逻辑的关系。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • 本文针对HDU 1042 N! 问题提供详细的解析和代码实现。题目要求计算给定整数N(0 ≤ N ≤ 10000)的阶乘N!。文章不仅提供了算法思路,还附上了C++语言的具体实现。 ... [详细]
  • 该问题描述了以不同价格购买三种类型的鸡(公鸡、母鸡和小鸡),使用100元恰好购买100只鸡的不同组合。具体而言,每只公鸡价值5元,每只母鸡价值3元,而每三只小鸡价值1元。问题是,如何用100元购买100只鸡,并找出所有可能的公鸡、母鸡和小鸡的组合。 ... [详细]
  • 如何高效渲染JSON数据
    本文介绍了在控制器中返回JSON结果的方法,并详细说明了如何利用jQuery处理和展示这些数据,为Web开发提供了实用的技巧。 ... [详细]
  • 我正在尝试获取日历事件和提醒,但有些却不返回事件,提醒,日历,事件源的 ... [详细]
  • [Swift]LeetCode688. “马”在棋盘上的概率 | Knight Probability in Chessboard
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤ ... [详细]
author-avatar
万万558
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有