如何删掉编程中的 Switch 语句

目录什么是多重方法?多重方法是什么样子?多重方法有什么好处?实现一个多重方法库多重方法是一种有趣的方式,可以帮你摆脱令人讨厌的 switch。而且,这也有助于提升代码的可读性。...

2023-07-25

swift实现简易计算器项目

本文实例为大家分享了swift实现简易计算器的具体代码,供大家参考,具体内容如下首先在storyboard中搭建出界面接着上viewcontroller代码import UIKitclass ViewController: UIV...

2023-07-25

Swift简单快速的动态更换app图标AppIcon方法示例

目录关键方法具体代码及UIAssets 图片设置 APPIcon名称与上面的要一致关键方法获取到当前AppIcon的名称 // 获取到当前AppIcon的名称let iconName = UIApplication.shared.a...

2023-07-25

Swift重构自定义空等运算符 “??=” 实例

目录一、思路来源二、示例三、源码四、总结一、思路来源最近在做 Flutter 开发时发现一个之前没注意到的空等运算符 “??=”,代表左边为空时,才会把右边的值赋给左边,...

2023-07-25

Swift 指针底层探索分析

目录概要1. 指针的认识1.1 指定类型指针1.2 未指定类型指针1.3 访问结构体实例对象2. 指针的常见绑定2.1 指针与内存空间的绑定(指向)(bindMemory)2.2 元组指针类型转换(假定内...

2023-07-25

Swift自动调整视图布局AutoLayout和AutoresizingMask功能详解

目录Swift 中 AutoLayout 和 AutoresizingMaskAutoLayoutAutoresizingMask总结Swift 中 AutoLayout 和 AutoresizingMaskSwift 中 AutoLayout 和 AutoresizingMask 用于自动...

2023-07-25

Swift map和filter函数原型基础示例

目录map函数原型filter函数原型map函数原型/// Returns an array containing the results of mapping the given closure/// over the sequence's elements.////// In this...

2023-07-25

switch多选择结构、循环结构示例详解

目录switch多选择结构循环结构while循环do...while循环每日Java面试题switch多选择结构多选择结构还有一个实现方式就是switch case语句switch case语句判断一个变量与一系...

2023-07-25

Swift 重构重载运算符示例解析

目录一、思路来源二、基础类型 String 为例重载乘法运算符源码实现:三、对象类型 UIEdgeInsets 为例重载加法运算符将源码实现:四、总结一、思路来源研究自定义运算符的时候,又...

2023-07-25

Swift 中的 RegexBuilder学习指南

目录前言Regex 字面量RegexBuilder - 像写代码一样写正则RegexRepetitionBehaviorFoundation 的支持总结前言在我们日常的项目开发中,经常会碰到和正则表达式打交道的时候。...

2023-07-25

Swift reduce函数使用示例详解

目录reduce参数示例reduce(into:)reduceSwift中数组的reduce方法用于做序列元素的累加,如数组元素的累加, 函数原型:@inlinable public func reduce<Result>( _ initialRes...

2023-07-25

Swift Error重构优化详解

目录背景现状问题分析期望结果技术选型优化解决Error模型优化前优化后基类Request优化前优化后模块调用优化前优化后总结背景现状项目每积累到一定程度,代码的重构优化是必经...

2023-07-25

NotificationCenter类实现原理

目录正文1、首先定义一个NotificationCenter类定义2、然后定义一个观察者对象3、在NotificationCenter中添加注册观察者的方法4、在 NotificationCenter 中添加发送通知的方...

2023-07-25

Swift之for循环的基础使用学习

目录forEachfor inenumerated迭代器遍历indicesenumerated获取了索引和值RangeforEachlet numbers=[Int](0...7)numbers.forEach{ (num) in if(num==3){ return...

2023-07-25

swift指针及内存管理内存绑定实例详解

目录swift API 绑定绕过编译器检查 - assumingMemoryBound内存转换 - bindMemory临时改变内存绑定 - withMemoryReboundswift API 绑定swift提供了3种不同的API来绑定/重新...

2023-07-25

Combine中错误处理和Scheduler使用详解

目录错误处理NeversetFailureType(to:)assign(to:on:)assign(to:)assertNoFailure(_:file:line:)处理错误try* Operator映射错误捕获错误并重试chedulerScheduler 简介Sched...

2023-07-25

如何在Swift 中使用 async let 并发运行后台任务

目录前言长期运行的任务阻塞了UI使用 async/await 在后台执行任务在后台执行多个任务使用 "async let " 下载多个文件结论前言Async/await 语法是在 Swift 5.5 引入的,在 WWD...

2023-07-25

Swift使用enum抹平数组元素差异实例详解

目录前言业务场景用什么控件使用UIScrollView的分析使用UITableView的分析加工数据总结前言通过Protocol去封装入参,抹平了入参之间的差异。今天这篇依然围绕一个我遇到的业...

2023-07-25

仓库模式及其在Swift 项目中的应用详解

目录正文不使用仓库模式时的代码使用仓库有什么好处?设计仓库接口实现仓库接口选择用哪个仓库实现处理数据源的变更总结正文在现代 Swift 项目中,很流行一种模式叫做仓库模式,...

2023-07-25

Swift中的高阶函数功能作用示例详解

目录高阶函数的作用1. 简化代码2. 提高可读性3. 支持函数式编程4. 提高代码的可重用性常见的高阶函数1. map()2. filter()3. reduce()4. sorted()5. forEach()6. compactMap...

2023-07-25

Swift高阶函数contains allSatisfy reversed lexicographicallyPrecedes用法示例

目录一、contains二、allSatisfy三、reversed四、lexicographicallyPrecedes一、contains返回一个布尔值,指示序列的每个元素是否满足给定的条件。如果有一个满足即返回。...

2023-07-25

Swift enum枚举类型使用详解

目录前言AFErrorResultOptional最后举一个enum的典型例子总结前言我一直在思考如何去讲解Swift中的枚举类型,它是如此让人熟悉,不免就让你跟着编程经验走,列举几个状态就感觉万...

2023-07-25

swift依赖注入和依赖注入容器详解

目录什么是控制反转(Inversion of Control)?什么是依赖注入?依赖注入的种类初始化器注入属性注入方法注入依赖注入容器实现一个简单的依赖注入容器总结什么是控制反转(Inversion...

2023-07-25

swift 错误处理do catch try try!使用详解

在swift中 如果我们要定义一个表示错误类型非常简单,只要遵循Error协议就可以了,我们通常用枚举或者结构体来表示错误类型,枚举可能用的多些,因为他能更直观的表达当前错误类型...

2023-07-25

Swift可选值优化示例详解

目录nil 的语义nil 在内存中的表示nil 的优化BoolStringClassEnum结语nil 的语义在 Objective-C 中,nil 表示空对象,它本质是一个指向 0x00000000 的指针。但对于非指针的值类...

2023-07-25

Swift 图表使用Foudation库中测量类型详解

目录前言定义图表的数据在图表中使用测量值设计一个包装器类型显示格式化标签前言在这篇文章中,我们将建立一个条形图,比较基督城地区自然散步的持续时间。我们将使用今年推出...

2023-07-25

特定用例下的Combine全面使用详解

目录引言网络URLSession ExtensionCodable向多个 Subscriber 发布网络数据调试打印事件执行副作用使用 Debugger OperatorTimer使用 RunLoop使用 Timer 类使用 DispatchQueu...

2023-07-25

Swift 中的 Actors 使用及如何防止数据竞争问题(示例详解)

目录前言Actors 的基本原理Actor 是引用类型,但与类相比仍然有所不同为什么会出现数据竞争如何防止数据竞争使用 async/await 访问数据防止不必要的暂停非隔离(nonisolated)...

2023-07-25

Swift Sequence Collection使用示例学习

目录一:Sequence1.1 迭代器 Iterator1.2 IteratorProtocol协议1.3 Sequence协议1.4 通过Sequence协议自定义有限的集合二:Collection2.1 环形数组2.2 MutableCollection2.3 Ra...

2023-07-25

Swift Error重构的基础示例详解

目录Error定义概述用枚举来表示简单的错误用结构体或其他类型表示复杂的错误处理Error的三种方式相关的一些关键词rethrows & throwstry / try!/ try? / deferfatalErrorError...

2023-07-25

Swift中的HTTP模拟测试示例详解

目录正文StarWarsAPI 类MockLoader正文我们已经了解了单个方法如何为通过网络加载请求提供基础。然而,网络也是开发应用程序时最大的失败点之一,尤其是在单元测试方面。 当我...

2023-07-25

Swift 中 Opaque Types学习指南

目录什么是Opaque Types如何使用为什么要使用可读性更强性能更好使用的限制总结什么是Opaque TypesOpaque Types 是在 Swift5.7 新添加的一个特性。主要是和 Protocol 来搭...

2023-07-25

Swift之运算符重载示例详解

目录引言重载双目运算符单目运算符复合赋值运算符等价运算符 ==自定义运算符自定义后置运算符自定义中置运算符引言在C++中, 运算符是可以重载的, Swift也是支持的注:=和三目...

2023-07-25

swift内存管理指针类型使用实例详解

目录为什么说指针不安全指针类型原始指针-rawPointer 的使用size/stride/alignment的理解情况一情况二泛型指针的使用为什么说指针不安全我们在创建一个对象的时候,是需要在...

2023-07-25

SwiftUI开发总结combine原理简单示例详解

目录引言SwiftUI是什么?如何理解combine@propertyWrapperPublishers 与 subscribersSubject的使用Operators的使用总结引言最近在自研一个新的项目,在考虑使用的技术栈时,调研...

2023-07-25

Swift并发系统并行运行多个任务使用详解

目录前言从异步到并发任务组结论前言Swift 内置并发系统的好处之一是它可以更轻松地并行执行多个异步任务,这反过来又可以使我们显着加快可以分解为单独部分的操作。在本文中...

2023-07-25

swiftui开发之padding默认值设置详解

目录正文padding 的默认值对某个方向设置 padding同时对多个方向设置 padding对上下左右4个方向的 padding 进行精确设置总结正文swiftui 中的 padding 用于设置视图的填充...

2023-07-25

Swift设计思想Result<T>与Result<T, E: Error>类型解析

目录背景知识错误类型泛型参数选择哪个比较好?Result<T, E: Error>优点缺点Result结论背景知识Cocoa API 中有很多接受回调的异步方法,比如 URLSession 的 dataTask(with:comp...

2023-07-25

Swift中的可选项Optional解包方式实现原理

目录为什么需要Optional什么是OptionalOptional实现原理Optional的解包方式1. 可选项绑定(Optional Binding)2. 强制解包(Forced Unwrapping)3. 隐式解包(Implicitly Unwrapped...

2023-07-25

Swift 并发修改Sendable 闭包实例详解

目录前言使用 Sendable使用泛型和枚举时的隐式一致性从线程安全的实例中抛出错误如何使用Sendable协议要在同一源文件中遵守 Sendable的限制如何使用 @SendabeleSwift 6: 为...

2023-07-25

详解Objective C 中Block如何捕获外部值

目录引言自动变量静态变量、静态全局变量与全局变量带 __block 的自动变量捕获对象__block 对象类型的捕获引言Block 本质上也是一个 Objective-C 对象,它内部也有个 isa指针...

2023-07-25

iOS开发实现搜索框(UISearchController)

最近自己在写一个APP,其中需要实现搜索框搜索功能,于是乎就想写篇博客介绍下UISearchController和搜索框的实现。我写的是一个天气预报APP,直接以我APP中的源代码来详细介绍下...

2023-07-25

Objective-C const常量的优雅使用方法

目录正文Objective-C 的常量声明方式在 Objective-C 中使用 let 来声明常量正文在编写代码时经常要使用常量,来替代 magic number。比较简单的做法是通过预处理指令 #define...

2023-07-25

iOS小技能之字典转模及对象相等性示例详解

目录前言I 字典转模型1.1 字典转模型的实现步骤1.2 字典转模型的过程II 对象的相等性 & 本体性2.1 相等性检查2.2 Foundation 框架中,自己实现的相等性检查2.3 字符串驻留III...

2023-07-25

iOS RN启动中管理Native Module详解

目录1. 全局的 native module 注册表2. RCTBridgeModule 协议 3. RCTModuleClasses中Class数据的处理4. ModuleClasse包装成RCTModuleData过程5. RCTModuleData在什么时候进...

2023-07-25

iOS两丫技术之UILabel性能不够的解决方法

目录Async ViewAsync LayerRunLoop触发事件的保存YYLabel主要参照 YYKitYYKit 博大精深,就像少林武功Async View为了异步 + runloop 空闲时绘制,因为苹果的 UILabel 性能不够...

2023-07-25

Objective-C之Category实现分类示例详解

目录引言编译时运行时引言在写 Objective-C 代码的时候,如果想给没法获得源码的类增加一些方法,Category 即分类是一种很好的方法,本文将带你了解分类是如何实现为类添加方法的...

2023-07-25

混合栈跳转导致Flutter页面事件卡死问题解决

目录问题来源问题难点问题定位问题确定问题解决总结问题来源在我们升级Flutter2.5后,测试在走整个业务流程中发现了有页面卡死现象,于是给我提了一个BUG。在xx页面多次操作后,...

2023-07-25

IOS开发Swift 与 OC相互调用详解

目录1、创建桥接文件2、Swift调用OCNS_SWIFT_NAME、NS_SWIFT_UNAVAILABLENS_REFINED_FOR_SWIFT规则3、OC调用Swift4、坑点1、创建桥接文件在创建另一种语言的文件时XCode会...

2023-07-25

ios利用RunLoop原理实现去监控卡顿实例详解

目录一、卡顿问题的几种原因二、监测卡顿的思路监测FPS:RunLoop:三、如何检查卡顿一、卡顿问题的几种原因复杂 UI 、图文混排的绘制量过大;在主线程上做网络同步请求;在主线程做...

2023-07-25
返回顶部
顶部