如何删掉编程中的 Switch 语句
目录什么是多重方法?多重方法是什么样子?多重方法有什么好处?实现一个多重方法库多重方法是一种有趣的方式,可以帮你摆脱令人讨厌的 switch。而且,这也有助于提升代码的可读性。...
目录什么是多重方法?多重方法是什么样子?多重方法有什么好处?实现一个多重方法库多重方法是一种有趣的方式,可以帮你摆脱令人讨厌的 switch。而且,这也有助于提升代码的可读性。...
本文实例为大家分享了swift实现简易计算器的具体代码,供大家参考,具体内容如下首先在storyboard中搭建出界面接着上viewcontroller代码import UIKitclass ViewController: UIV...
目录关键方法具体代码及UIAssets 图片设置 APPIcon名称与上面的要一致关键方法获取到当前AppIcon的名称 // 获取到当前AppIcon的名称let iconName = UIApplication.shared.a...
目录一、思路来源二、示例三、源码四、总结一、思路来源最近在做 Flutter 开发时发现一个之前没注意到的空等运算符 “??=”,代表左边为空时,才会把右边的值赋给左边,...
目录概要1. 指针的认识1.1 指定类型指针1.2 未指定类型指针1.3 访问结构体实例对象2. 指针的常见绑定2.1 指针与内存空间的绑定(指向)(bindMemory)2.2 元组指针类型转换(假定内...
目录Swift 中 AutoLayout 和 AutoresizingMaskAutoLayoutAutoresizingMask总结Swift 中 AutoLayout 和 AutoresizingMaskSwift 中 AutoLayout 和 AutoresizingMask 用于自动...
目录map函数原型filter函数原型map函数原型/// Returns an array containing the results of mapping the given closure/// over the sequence's elements.////// In this...
目录switch多选择结构循环结构while循环do...while循环每日Java面试题switch多选择结构多选择结构还有一个实现方式就是switch case语句switch case语句判断一个变量与一系...
目录一、思路来源二、基础类型 String 为例重载乘法运算符源码实现:三、对象类型 UIEdgeInsets 为例重载加法运算符将源码实现:四、总结一、思路来源研究自定义运算符的时候,又...
目录前言Regex 字面量RegexBuilder - 像写代码一样写正则RegexRepetitionBehaviorFoundation 的支持总结前言在我们日常的项目开发中,经常会碰到和正则表达式打交道的时候。...
目录reduce参数示例reduce(into:)reduceSwift中数组的reduce方法用于做序列元素的累加,如数组元素的累加, 函数原型:@inlinable public func reduce<Result>( _ initialRes...
目录背景现状问题分析期望结果技术选型优化解决Error模型优化前优化后基类Request优化前优化后模块调用优化前优化后总结背景现状项目每积累到一定程度,代码的重构优化是必经...
目录正文1、首先定义一个NotificationCenter类定义2、然后定义一个观察者对象3、在NotificationCenter中添加注册观察者的方法4、在 NotificationCenter 中添加发送通知的方...
目录forEachfor inenumerated迭代器遍历indicesenumerated获取了索引和值RangeforEachlet numbers=[Int](0...7)numbers.forEach{ (num) in if(num==3){ return...
目录swift API 绑定绕过编译器检查 - assumingMemoryBound内存转换 - bindMemory临时改变内存绑定 - withMemoryReboundswift API 绑定swift提供了3种不同的API来绑定/重新...
目录错误处理NeversetFailureType(to:)assign(to:on:)assign(to:)assertNoFailure(_:file:line:)处理错误try* Operator映射错误捕获错误并重试chedulerScheduler 简介Sched...
目录前言长期运行的任务阻塞了UI使用 async/await 在后台执行任务在后台执行多个任务使用 "async let " 下载多个文件结论前言Async/await 语法是在 Swift 5.5 引入的,在 WWD...
目录前言业务场景用什么控件使用UIScrollView的分析使用UITableView的分析加工数据总结前言通过Protocol去封装入参,抹平了入参之间的差异。今天这篇依然围绕一个我遇到的业...
目录正文不使用仓库模式时的代码使用仓库有什么好处?设计仓库接口实现仓库接口选择用哪个仓库实现处理数据源的变更总结正文在现代 Swift 项目中,很流行一种模式叫做仓库模式,...
目录高阶函数的作用1. 简化代码2. 提高可读性3. 支持函数式编程4. 提高代码的可重用性常见的高阶函数1. map()2. filter()3. reduce()4. sorted()5. forEach()6. compactMap...
目录一、contains二、allSatisfy三、reversed四、lexicographicallyPrecedes一、contains返回一个布尔值,指示序列的每个元素是否满足给定的条件。如果有一个满足即返回。...
目录前言AFErrorResultOptional最后举一个enum的典型例子总结前言我一直在思考如何去讲解Swift中的枚举类型,它是如此让人熟悉,不免就让你跟着编程经验走,列举几个状态就感觉万...
目录什么是控制反转(Inversion of Control)?什么是依赖注入?依赖注入的种类初始化器注入属性注入方法注入依赖注入容器实现一个简单的依赖注入容器总结什么是控制反转(Inversion...
在swift中 如果我们要定义一个表示错误类型非常简单,只要遵循Error协议就可以了,我们通常用枚举或者结构体来表示错误类型,枚举可能用的多些,因为他能更直观的表达当前错误类型...
目录nil 的语义nil 在内存中的表示nil 的优化BoolStringClassEnum结语nil 的语义在 Objective-C 中,nil 表示空对象,它本质是一个指向 0x00000000 的指针。但对于非指针的值类...
目录前言定义图表的数据在图表中使用测量值设计一个包装器类型显示格式化标签前言在这篇文章中,我们将建立一个条形图,比较基督城地区自然散步的持续时间。我们将使用今年推出...
目录引言网络URLSession ExtensionCodable向多个 Subscriber 发布网络数据调试打印事件执行副作用使用 Debugger OperatorTimer使用 RunLoop使用 Timer 类使用 DispatchQueu...
目录前言Actors 的基本原理Actor 是引用类型,但与类相比仍然有所不同为什么会出现数据竞争如何防止数据竞争使用 async/await 访问数据防止不必要的暂停非隔离(nonisolated)...
目录一:Sequence1.1 迭代器 Iterator1.2 IteratorProtocol协议1.3 Sequence协议1.4 通过Sequence协议自定义有限的集合二:Collection2.1 环形数组2.2 MutableCollection2.3 Ra...
目录Error定义概述用枚举来表示简单的错误用结构体或其他类型表示复杂的错误处理Error的三种方式相关的一些关键词rethrows & throwstry / try!/ try? / deferfatalErrorError...
目录正文StarWarsAPI 类MockLoader正文我们已经了解了单个方法如何为通过网络加载请求提供基础。然而,网络也是开发应用程序时最大的失败点之一,尤其是在单元测试方面。 当我...
目录什么是Opaque Types如何使用为什么要使用可读性更强性能更好使用的限制总结什么是Opaque TypesOpaque Types 是在 Swift5.7 新添加的一个特性。主要是和 Protocol 来搭...
目录引言重载双目运算符单目运算符复合赋值运算符等价运算符 ==自定义运算符自定义后置运算符自定义中置运算符引言在C++中, 运算符是可以重载的, Swift也是支持的注:=和三目...
目录为什么说指针不安全指针类型原始指针-rawPointer 的使用size/stride/alignment的理解情况一情况二泛型指针的使用为什么说指针不安全我们在创建一个对象的时候,是需要在...
目录引言SwiftUI是什么?如何理解combine@propertyWrapperPublishers 与 subscribersSubject的使用Operators的使用总结引言最近在自研一个新的项目,在考虑使用的技术栈时,调研...
目录前言从异步到并发任务组结论前言Swift 内置并发系统的好处之一是它可以更轻松地并行执行多个异步任务,这反过来又可以使我们显着加快可以分解为单独部分的操作。在本文中...
目录正文padding 的默认值对某个方向设置 padding同时对多个方向设置 padding对上下左右4个方向的 padding 进行精确设置总结正文swiftui 中的 padding 用于设置视图的填充...
目录背景知识错误类型泛型参数选择哪个比较好?Result<T, E: Error>优点缺点Result结论背景知识Cocoa API 中有很多接受回调的异步方法,比如 URLSession 的 dataTask(with:comp...
目录为什么需要Optional什么是OptionalOptional实现原理Optional的解包方式1. 可选项绑定(Optional Binding)2. 强制解包(Forced Unwrapping)3. 隐式解包(Implicitly Unwrapped...
目录前言使用 Sendable使用泛型和枚举时的隐式一致性从线程安全的实例中抛出错误如何使用Sendable协议要在同一源文件中遵守 Sendable的限制如何使用 @SendabeleSwift 6: 为...
目录引言自动变量静态变量、静态全局变量与全局变量带 __block 的自动变量捕获对象__block 对象类型的捕获引言Block 本质上也是一个 Objective-C 对象,它内部也有个 isa指针...
最近自己在写一个APP,其中需要实现搜索框搜索功能,于是乎就想写篇博客介绍下UISearchController和搜索框的实现。我写的是一个天气预报APP,直接以我APP中的源代码来详细介绍下...
目录正文Objective-C 的常量声明方式在 Objective-C 中使用 let 来声明常量正文在编写代码时经常要使用常量,来替代 magic number。比较简单的做法是通过预处理指令 #define...
目录前言I 字典转模型1.1 字典转模型的实现步骤1.2 字典转模型的过程II 对象的相等性 & 本体性2.1 相等性检查2.2 Foundation 框架中,自己实现的相等性检查2.3 字符串驻留III...
目录1. 全局的 native module 注册表2. RCTBridgeModule 协议 3. RCTModuleClasses中Class数据的处理4. ModuleClasse包装成RCTModuleData过程5. RCTModuleData在什么时候进...
目录Async ViewAsync LayerRunLoop触发事件的保存YYLabel主要参照 YYKitYYKit 博大精深,就像少林武功Async View为了异步 + runloop 空闲时绘制,因为苹果的 UILabel 性能不够...
目录引言编译时运行时引言在写 Objective-C 代码的时候,如果想给没法获得源码的类增加一些方法,Category 即分类是一种很好的方法,本文将带你了解分类是如何实现为类添加方法的...
目录问题来源问题难点问题定位问题确定问题解决总结问题来源在我们升级Flutter2.5后,测试在走整个业务流程中发现了有页面卡死现象,于是给我提了一个BUG。在xx页面多次操作后,...
目录1、创建桥接文件2、Swift调用OCNS_SWIFT_NAME、NS_SWIFT_UNAVAILABLENS_REFINED_FOR_SWIFT规则3、OC调用Swift4、坑点1、创建桥接文件在创建另一种语言的文件时XCode会...
目录一、卡顿问题的几种原因二、监测卡顿的思路监测FPS:RunLoop:三、如何检查卡顿一、卡顿问题的几种原因复杂 UI 、图文混排的绘制量过大;在主线程上做网络同步请求;在主线程做...