自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用 Google ML Kit 实现图片文字识别(提取美国驾照信息)

Google ML Kit 是一个现代、功能强大、跨平台的机器学习 SDK。在这篇文章中,我们将使用 ML Kit 在 Android 应用中识别图片文字,以提取美国驾照上的关键信息:DL(驾照号) 和 EXP(有效日期)。

2025-04-08 17:40:22 143

原创 使用 SwiftUI 和 Vision 框架识别美国驾照信息

我们将使用 SwiftUI 结合 Vision 框架,实现从图片中提取文字

2025-04-08 16:54:22 172

原创 Swift 并发任务的协作式取消

在 Swift 并发(Swift Concurrency)中,任务(Task)不会被强行终止,而是采用**协作式取消(cooperative cancellation)**机制。这意味着任务会被标记为“已取消”,但是否真正停止执行,取决于任务本身的逻辑处理。

2025-03-21 10:59:28 425

原创 Vue3中集成Chart.js实现柱状图

我们将介绍如何在Vue 3项目中集成Chart.js并使用其功能绘制一个柱状图。Chart.js是一个流行的开源JavaScript库,可以帮助我们轻松创建美观的图表。

2025-03-20 15:19:16 478

原创 JS中Object与Map的区别

Object 和 Map 均可用来存储键值对,但它们存在诸多不同之处。下面为你详细介绍两者的区别并给出示例代码。

2025-03-19 13:58:22 163

原创 JS中let和var变量区别

作用域:var 是函数作用域,let 是块级作用域。提升:var 会被提升并初始化为 undefined,let 也会提升,但在声明前访问会导致错误。重声明:var 允许在同一作用域内重复声明,let 不允许。循环中的行为:在 for 循环中,使用 let 会创建一个新的作用域,而 var 只会有一个作用域。

2025-02-28 10:09:09 310

原创 Android CustomTextField

在 Compose 中开发用户界面时,需要处理输入框和键盘的交互,例如在键盘弹出时调整布局位置,避免遮挡重要内容。本篇博客将通过一个完整的示例展示如何实现这一功能

2025-01-15 17:30:32 465

原创 SwiftUI 中的 navigationBarTitleDisplayMode 使用区别:.automatic、.inline 和 .large

SwiftUI 提供了navigationBarTitleDisplayMode修饰符来控制导航栏标题的显示模式。这三种模式(.automatic、.inline和.large)主要决定了标题的外观和布局方式,本文将介绍它们的使用场景和区别

2025-01-13 14:55:43 436

原创 SwiftUI 导航:通过 NavigationStack 和 NavigationDestination 实现路径管理

在 SwiftUI 开发中,实现灵活且功能丰富的导航系统是构建优秀用户界面的关键。本文将深入解析一段 SwiftUI 代码,展示如何利用NavigationStack和枚举来实现多界面导航,并在不同界面之间传递参数

2025-01-11 17:22:06 521

原创 Xcode 正则表达式实现查找替换

在软件开发过程中,查找和替换文本是一项常见的任务。正则表达式(Regular Expressions)是一种强大的工具,可以帮助我们在复杂的文本中进行精确的匹配和替换。Xcode 作为一款流行的开发工具,提供了对正则表达式的支持。本文将详细介绍如何在 Xcode 中利用正则表达式实现查找替换功能。

2025-01-11 14:42:42 1191

原创 Python 桌面时钟

学习如何使用 Python 的 tkinter 模块创建一个动态时钟。通过这个项目,你将熟悉 tkinter 的基本用法,掌握画布绘图和动态更新的技巧

2025-01-09 15:32:26 434

原创 Python 爬取 B 站视频弹幕

B 站的弹幕数据是通过视频的cid(弹幕 ID)来获取的。每个视频对应一个cid,而弹幕存储在一个 XML 文件中。只需要知道视频的cid,就能通过 API 获取对应的弹幕

2025-01-08 19:26:36 1373 10

原创 Python 用 PrettyTable 让你的数据展示更美观

PrettyTable是一个用于在 Python 中以表格形式展示数据的模块,提供简单易用的接口,可以轻松创建格式化的表格

2025-01-08 15:43:56 314

原创 深入理解 Python 线程:多线程编程的实践与技巧

在Python编程中,线程是一个强大的工具,它允许我们在程序中同时执行多个任务,从而提高程序的效率和响应性。本文将深入探讨Python线程的概念、使用方法以及在实际应用中需要注意的问题。

2025-01-07 18:01:29 434

原创 Python 协程:用 asyncio 和 Task 实现并发

Python的协程提供了一种高效处理异步任务的方式,使我们可以轻松实现并发编程。在实际开发中,asyncio 和 Task 是协程并发的核心工具。本文将介绍协程的基本概念,并通过代码示例演示如何使用 asyncio 和 Task 来实现并发。

2025-01-07 18:00:46 393

原创 Python 代理的使用:突破网络限制,提升数据获取效率

在当今数字化的世界中,网络数据的获取和处理变得越来越重要。在使用Python进行网络请求时,有时候我们会遇到网络限制、访问速度慢等问题。这时候,代理(Proxy)就成为了解决这些问题的有力工具。本文将详细介绍如何在Python中使用代理,让你的网络请求更加顺畅。

2025-01-07 15:17:53 454

原创 使用 Python 和 BeautifulSoup 进行网页数据抓取

网页数据抓取(WebScraping)是从网页上提取数据的技术。Python提供了许多库来完成这项任务,其中BeautifulSoup是一个非常流行且易用的选择。本文将介绍如何使用BeautifulSoup抓取网页数据,并提供详细的代码示例。

2025-01-07 14:51:29 253

原创 Python 与 Xpath 解析小说网站

try:resp.raise_for_status() # 检查请求是否成功,如果状态码不是200,引发异常print(f"网络请求错误: {e}")return ""这个函数url(要请求的网页地址)和headers(请求头信息)。在函数内部,使用方法发送 GET 请求获取网页内容,并通过with语句确保请求完成后资源能够正确关闭。用于检查请求是否成功,如果状态码不是 200,会引发异常,捕获异常后打印错误信息并返回空字符串。

2025-01-03 16:44:54 339

原创 Python Re模块匹配标签

咱们用Re模块匹配标签,来获取小说网站,推荐书。.html文件中,发现可以使用这个a标签。1. 定义用于匹配书名的正则表达式模式。equests模块逻辑。3. Re模块逻辑。

2025-01-03 15:51:12 176

原创 《探索 Jetpack Compose:构建现代化 Android UI 的利器》

Jetpack Compose 是谷歌推出的现代化 UI 框架,用于简化 Android 应用开发中的 UI 构建。它使用声明式编程方式,允许开发者以简洁直观的方式创建动态和响应式的 UI。本文将从基础概念到进阶用法,带你全面了解 Compose 的核心功能和使用技巧。

2024-12-09 16:34:18 869

原创 SwiftUI + Async/Await 实现网络请求:GET 和 POST 的实战解析

SwiftUI 和 Swift 的异步编程特性async/await,实现一个简单的 GET 和 POST 网络请求示例,并讨论代码设计中的关键技术点。这段代码通过NetworkManager抽象了网络请求逻辑,使用ContentViewModel来处理业务逻辑和数据绑定,并通过 SwiftUI 的ContentView展示网络请求的结果。

2024-11-20 14:08:52 662

原创 [SwiftUI 开发] @dynamicCallable 与 callAsFunction:将类型实例作为函数调用

在 Swift 中,@dynamicCallable 和 callAsFunction 提供了两种将类型实例作为函数调用的方式。

2024-09-26 15:35:41 513

原创 [SwiftUI 开发] @FocusState 管理焦点

是一个新的属性包装器,用于管理焦点状态。通过它,开发者可以轻松地控制哪个视图具有焦点,以及如何响应焦点变化。这对于表单输入、文本字段以及需要用户交互的场景非常重要。

2024-09-23 11:04:29 436

原创 [SwiftUI 开发] 构建带有动画的图片瀑布流效果

用户可以看到一个由多张图片组成的瀑布流布局,图片按列排列。当用户点击其中一张图片时,图片会在全屏模式下显示,并带有平滑的动画过渡。用户可以再次点击全屏图片,返回瀑布流视图。

2024-09-06 14:07:12 1329 1

原创 Android Activity 的启动模式(Launch Mode)

什么是 Activity 的启动模式?

2024-08-26 15:41:12 589

原创 [SwiftUI 开发] 嵌套的ObservedObject中的更改不会更新UI

SwiftUI(更准确地说是Combine)只能看到值的变化,因此,它可以看到@Published结构实例的属性值的变化,而不能看到@Published类。如果您希望基于这些嵌套对象的属性值的更改来更新Ul,则使用嵌套对象的结构实例。如果必须使用类实例,请使用另一种机制显式地通知更改

2024-07-01 11:43:35 438

原创 一眼记住什么是MVVM

在 Swift 中使用 MVVM (模型-视图-视图模型) 设计模式。

2024-06-03 09:44:38 333 2

原创 [SwiftUI 开发] Actor 陷阱

Actor在reentrancy陷阱问题

2024-03-22 14:45:42 253

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

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

2024-01-26 15:09:34 437

原创 [Combine 开发] 寻找值

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

2024-01-23 15:19:55 391

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

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

2024-01-22 15:46:41 704

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

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

2024-01-16 16:24:21 1031

原创 Xcode 恢复Discard Changes

如何撤消 xcode 放弃所有更改

2023-12-20 15:13:05 1535

原创 [Swift 开发] @globalActor

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

2023-06-19 15:21:12 1444

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

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

2023-06-15 13:53:58 3525

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

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

2023-06-13 15:56:49 1546

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

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

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

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

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

2023-03-21 16:22:51 373

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

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

2023-03-21 14:40:40 1293

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

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

2023-03-20 16:54:10 2410

空空如也

空空如也

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

TA关注的人

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