自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(199)
  • 收藏
  • 关注

原创 [SwiftUI 开发] Actor 陷阱

Actor在reentrancy陷阱问题

2024-03-22 14:45:42 148

原创 [Combine 开发] collect、ignoreOutput的应用

在 Combine 框架中,collect()操作符用于将连续的元素组合成一个数组,并将这个数组作为一个事件发布给订阅者。

2024-01-26 15:09:34 366

原创 [Combine 开发] 寻找值

combile框架的 .first()、 .last()、 .min()、 .max()、 .output(at:)、 .output(in:)的用法

2024-01-23 15:19:55 355

原创 [Combine 开发] combineLatest、merge、zip的使用区别

combineLatest、merge 和 zip 是三个常用的操作符,用于组合和处理流式数据。以下是它们的区别以及在 Combine 中的使用场景

2024-01-22 15:46:41 355

原创 [Combine 开发] Controlling timing 时间控制

Combine框架,关于Controlling timing 时间控制几个常用方法

2024-01-16 16:24:21 850

原创 Xcode 恢复Discard Changes

如何撤消 xcode 放弃所有更改

2023-12-20 15:13:05 1112

原创 [Swift 开发] @globalActor

@globalActor 是 Swift 5.5 引入的一个新属性。它用于定义一个全局的执行器, 用于控制异步代码的调度和执行。

2023-06-19 15:21:12 1094

原创 [Swift 开发] @MainActor 自动主线程更新UI

Swift 5.5 引入了一个新的属性包装器 @MainActor,它提供了一种简单而安全的方式来在主线程上执行代码

2023-06-15 13:53:58 2598

原创 [Swift 开发] 数组线程安全 Actors

Actor 是一种并发编程模型,它通过限制只有一个线程可以访问 Actor 内部的状态来保证线程安全

2023-06-13 15:56:49 1349

原创 [微信小程序 开发] 云存储

云开发提供了一块存储空间,提供了上传文件到云端、带权限管理的云端下载能力,开发者可以在小程序端和云函数端通过 API 使用云存储功能。

2023-03-22 15:40:11 489 1

原创 [微信小程序 开发] 云函数

微信小程序云函数是微信小程序开发者可以用来在小程序中进行客户端编程的一种服务,它可以帮助开发者简化服务端编程,提高开发效率。微信小程序云函数可以让你在小程序中运行自定义的代码,而不需要你去搭建服务器,这样可以节省你的开发成本。

2023-03-21 16:22:51 284

原创 [微信小程序 开发] 数组使用

微信小程序 数组的基本使用方法

2023-03-21 14:40:40 953

原创 [微信小程序 开发] 云数据库

通过本文,我们可以学习到如何使用微信小程序云数据库来实现一些常见的数据库功能,包括创建云数据库、创建集合、添加数据和查询数据。

2023-03-20 16:54:10 2183

原创 [SwiftUI 开发] Animation几种显示效果

简单的记录一下Animation动画的几种效果

2023-02-27 17:17:51 275

原创 [Swift 开发] async/await异步编程封装Alamofire

Alamofire 是一个强大的网络请求库,可以轻松实现异步编程。本文将介绍如何使用 async/await 封装 Alamofire,以实现更加优雅的异步编程。总结一下,本文介绍了如何使用 async/await 封装 Alamofire,以实现更加优雅的异步网络请求。通过使用 async/await,可以使得网络请求变得更加简洁、优雅,让开发者更加轻松地实现异步编程。然后,我们封装一下逻辑层,模拟了3个网络请求,其中包括(无参get, 有参get,无参post )首先,我们用Alamofire的。

2023-02-24 17:11:18 1225

原创 [SwiftUI 开发] 自定义Navigation的返回按钮事件

SwiftUI 为我们提供了一个具有许多功能的 NavigationView,它可以帮助我们快速构建出一个具有统一样式的应用程序。但是,有时我们需要自定义NavigationView,比如,我们想在视图之间添加自定义的返回按钮。在本文中,我将向您展示如何使用SwiftUI自定义NavigationView的返回按钮。接下来,我们需要添加一个自定义的返回按钮到NavigationView中。这样,就可以实现一个自定义的NavigationView,它具有一个美观的返回按钮。

2023-02-15 17:18:17 1246

原创 [SwiftUI 开发] 自定义 modifiers

SwiftUI 中的 Modifiers 可以用来修改视图的外观和行为。您可以使用现有的修饰符或自定义修饰符。自定义修饰符是一个结构体,实现了一个修改方法,该方法接受一个视图并返回一个已修改的视图。

2023-02-10 15:30:12 244

转载 Please ensure the provisioning profile is configured for this device. If not, please try to generate

Please ensure the provisioning profile is configured for this device. If not, please try to generate

2023-02-06 10:16:07 1894 1

原创 [Swift 开发] 解决深copy浅copy (isKnownUniquelyReferenced(_:))

浅拷贝(copy):是对于一个对象的顶层拷贝,拷贝父对象,不会拷贝对象的内部的子对象深拷贝(deepcopy):是对于一个对象所有层次的拷贝(递归),完全拷贝了父对象及其子对象

2023-01-12 16:12:12 1065

原创 [SwiftUI 开发] LazyVGrid & LazyHGrid 网格(UICollectionView)

LazyVGrid & LazyHGrid布局都需要[GridItem]数组来控制约束的GridItem有3种约束类型。

2023-01-10 15:59:09 1652

原创 [SwiftUI 开发] Widget 小组件

小组件可以在主屏幕上实现内容展示和功能跳转。系统会向小组件获取时间线,根据当前时间对时间线上的数据进行展示。点击正在展示的视觉元素可以跳转到APP内,实现对应的功能。小组件是一个独立于 App 环境(即 App Extension),小组件的生命周期/存储空间/运行进程都和 App 不同。​​​​​​​App Extension 可以将自定义功能和内容扩展到应用程序之外,并在用户与其他应用程序或系统交互时向用户提供。例如,您的应用可以在主屏幕上显示为小部件。

2023-01-05 16:12:24 5091 3

原创 [SwiftUI 开发] 隐藏删除 ScrollBar in ScrollView

[SwiftUI 开发] 隐藏删除 ScrollBar in ScrollView。

2022-12-08 15:54:37 375

原创 [SwiftUI 开发] 显式动画和隐式动画

SwiftUI 动画分为显式动画和隐式动画

2022-09-19 11:24:23 755

原创 [Swift 开发] Combine使用方法

Combine基本用法。

2022-09-14 13:17:32 2177

原创 [SwiftUI 开发] @State @Binding @ObservedObject @EnvironmentObject

EnvironmentObject环境变量,创建对象时,通过.environmentObject(person())传值。@ObservedObject和@Published相当于KVO注册监听,@ObservedObject修饰一个对象,那就是注册了监听,@Published修饰一个对象,表示这个对象可以被监听。,struct的属性是不可以改变的,在SwiftUI中如果想改变属性,需要加上@State。,传递变成了引用传递,这样父子视图的状态就能关联起来了。修饰器修饰后,属性变成了一个。.........

2022-07-27 13:53:59 982

原创 [Swift 开发] 异步结果作为函数返回值

当您将异步结果作为函数返回值时,函数标记为异步,您就允许它挂起。当一个函数挂起自己时,它也会挂起它的调用者。所以它的调用者也必须是异步的。 为了指出异步函数中它可能挂起一次或多次的位置,使用了Semaphore(信号量) 关键字。 当异步函数被挂起时,函数线程会被阻塞。 当异步函数恢复时,从它调用的异步函数返回的结果流回原始函数,并从上次停止的地方继续执行。// 惯例来个Person类class Person { class func waitResult() -> [Int] {

2022-04-12 15:02:21 2875

原创 [Kotlin 开发] 高阶函数map、flatMap、reduce、fold

1. mapval list = 1..5val newList = list.map { "${it}元"}// 输出结果:// I/System.out: 1元// I/System.out: 2元// I/System.out: 3元// I/System.out: 4元// I/System.out: 5元map可以对数组进行操作2. flatMapval list = arrayOf( 1..3, 4..7)val newLi

2022-02-21 15:31:12 1659

原创 [Kotlin 开发] reduce和fold的区别

1.先写个小例子reduceprintln((0..5).reduce { acc, i -> Log.e("reduce ====","acc:"+acc+" i:" + i) acc + i})// 输出结果:// E/reduce ====: acc:0 i:1// E/reduce ====: acc:1 i:2// E/reduce ====: acc:3 i:3// E/reduce ====: acc:6 i:4// E/reduce ====:

2022-02-21 14:46:31 1950

原创 [Swift 开发] 一分钟会用Web Socket

一般网络请求时,只能client发请求,server回答。server不能主动给client发消息,Web Socket就能解决这个问题。1.导入框架import Starscream2.初始化对象var socket: WebSocket?var isConnected = falselet serverUrl = "ws://82.157.123.54:9010/ajaxchattest"var request = URLRequest(url: URL(string: .

2021-12-03 14:09:50 945

翻译 [Swift 开发] 异常俘获 Do_Try_Catch

定义抛出Throw类型表示和抛出错误 在 Swift 中,错误由符合 Error 协议的类型值表示。这个空协议表明一个类型可用于错误处理。Swift 枚举特别适合对一组相关的错误条件进行建模,关联的值允许传达有关要传达的错误性质的附加信息。例如,您可以通过以下方式表示在游戏中操作自动售货机的错误条件: enum VendingMachineError: Error { case invalidSelection case insufficientFun

2021-11-26 10:42:02 268

原创 [Kotlin 开发] Android studio 全局查找替换

1: 全局查找 Edit -> Find -> Find in Path... 快捷键 command + shift + F2: 全局替换 Edit -> Find -> Replace in Path... 快捷键 command + shift + R

2021-07-26 11:09:03 352

原创 [Kotlin 开发] 协程

使用协程启动协程的三种方式runBlocking{} 开启一个协程,堵塞当前县城,不可以被cancel,必须等内部逻辑执行完成。fun test() = runBlocking { repeat(3) { Log.d("runBlocking","runBlocking:协程执行${it} " ) delay(1000) }}Log.d("done","开始")test()Log.d("done","结束")打印结果://D...

2021-05-21 15:17:44 121

原创 [Kotlin 开发] let、run、with、also、apply函数的用法

在Kotlin中有几个十分相似的标准库函数,他们之间也有一些差异,如果使用不当可能回得到与预期相反的效果,所以我们来简短的区分一下let、run、with、also、apply这5个标准库函数的区别。 Kotlin提供了这几种标准域函数主要是为了简化一些操作,让代码看起来更加的简洁,可读性更好。首先我建个模型类:class person(var username: String, var age: Int){ fun getCurrentName():String{ ret

2021-05-13 13:51:42 182 1

转载 [Android 开发] Mac Android Studio 模拟器无法联网

可能原因一:模拟器设置了网络代理通过Android Studio创建模拟器时,默认勾选了“ Use Android Studio HTTP proxy settings”, 然后模拟器不可以上网。解决方法:原文地址:https://blog.csdn.net/veloi/article/details/105193616...

2021-01-13 14:54:50 1451 4

原创 [Swift 开发] 判断俩数组是否相等[并集、交集、差集]

两个数组要进行数据的比较,最好先转换成集合.let set1 = Set([1, 2, 3, 4]) //集合转数组let array = Array(Set1)//数组转集合let set2 = Set(array)初始化俩集合数组里的对象如果是值类型可以直接比较,如果是饮用类型要实现Hashable或CustomDebugStringConvertible协议struct perpon:Hashable, CustomDebugStringConvertible{ v

2020-12-14 19:55:00 4215

原创 [Swift 开发] map、flatMap、compactMap的区别

一维数组的使用let numbers = [1, 2, 3, nil, 4, 5, 6, 7]let maped = numbers.map { $0 }let flatMapped = numbers.flatMap { $0 }let compactMapped = numbers.compactMap { $0 }print(maped)//[Optional(1), Optional(2), Optional(3), nil, Optional(4), Optional(5), Op

2020-11-18 11:27:40 1677

原创 [Swift 开发] 尾递归

尾递归如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成优化的代码。错误实例func sum(_ n: Int) -> Int { if n == 0 { return 0 } return n + s.

2020-10-29 14:12:53 178

原创 [SQLite 开发] 查询去掉重复数据

本文主要总结数据库去掉重复数据的方法去掉重复数据的方法:关键字:distinct有一表,有折扣名字和折扣价钱把不重复的折扣价钱查询出来SELECT distinct DiscountRate FROM DiscountTable结果:...

2020-09-16 17:32:36 4588

原创 [SQLite 开发] SQLite字段自增自减的SQL语句 (IF条件语句)

SQLite字段自增UPDATE table_nameSET column1 = column1 + 1WHERE columnID = 1SQLite字段自减UPDATE table_nameSET column1 = column1 - 1WHERE columnID = 1防止column1已经等于0了,再-1等于负数。我们需要曾加一个if语句判断UPDATE table_nameSET column1 = if(column1 < 1, 0, column1

2020-08-20 16:28:51 2658

原创 [Swift 开发] 01背包问题

有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。滚动数组解法每件物品只能选一次,对于每种物品,我们有两种选择1.不选 -> dp[i][j]=dp[i-1][j]等于选前i-1个物品,空间为j情况下的最优解2.选 -> dp[i][j]=dp[i-1][j-v[i]]+w[i]如果选的话,前i-1个物品的体积最多为j-v[i]...

2020-08-08 17:10:52 288

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除