首页
Jovins
取消

Swift 并发框架之Sendable

前言 在 Swift 中,Sendable 是一个协议,用于声明遵循该协议的类型是“可发送的”。具体来说,如果一个类型被声明为 Sendable,那么就可以安全地从一个任务(task)传递到另一个任务,而无需担心数据竞争或并发访问的问题。这样可以帮助开发者标识出哪些类型可以安全地在不同的并发执行上下文中传递和共享。 Sendable /// The Sendable protocol ...

Swift 并发框架之Task & Task Group

前言 Swift 中的 Task 和 Task Group 是 WWDC 2021 引入并发编程的新特性,它们是 Swift 5.5 中引入的异步/并发编程模型的一部分。Task允许我们从非并发方法创建并发环境,使用 async/await 调用方法。 Task Task 是一个表示异步操作的类型,可以通过 async 关键字来创建。 它可以用于执行异步操作,比如网络请求、文...

Swift 并发框架之Actor

前言 Swift Actors 是 Swift 5.5 中是一项新的语言特性,旨在帮助开发人员更容易地编写并发代码。Actors 可以让多个任务同时访问一个对象,同时保证线程安全和数据完整性。本文将详细介绍 Swift 中的 Actors,包括如何定义、如何使用以及如何避免数据竞争。 什么是Actor 在受到 Actor Model 的启发后,Swift 在 SE-0306 提案引入了...

Swift 并发框架之Async & Await

概览 在 WWDC 2021 中,Swift 迎来了一次非常重要的版本更新Swift 5.5。这次更新为 Swift 并发编程带来了很大的改变,通过Structured concurrency(SE-0304)、 async/await(SE-0296) 、以及 Actors (SE-0306),让开发者可以在更抽象的层面上思考并发场景的解决方式,同时保障了并发场景下的性能和安全性,避免了...

Swift结构化并发

前言 在认识Swift中的异步与并发时,先回顾一下多线程. 同步和异步的区别: 同步:只能在当前线程中执行任务,不具备开启新线程的能力 异步:可以在新的线程中执行任务,具备开启新线程的能力(异步主队列不具备) 队列 并发队列 可以让多个任务并发(同时)执行(自动开启多个线程同时执行任务) 并发功能只有在异步(dispatch_as...

浅谈Clean Architecture

前言 自从 2008 年发布 iOS SDK 以来,我们就用UIKit来构建应用程序。在此期间,一直在不懈地寻找最适合其应用程序的架构。一切始于MVC,但后来我们见证了MVP、MVVM、VIPER等的兴起。在本文中,我们将探讨 MVVM Clean Architecture如何帮助我们构建强大且可扩展的 iOS 应用程序。 在了解Clean Architecture之前,我们先回顾一...

SwiftData 学习

关于SwiftData SwiftData 框架于 WWDC 2023 上发布。它旨在改变 Swift 应用程序中存储和管理数据的过程。该框架建立在 Core Data 的基础上,并提供了便捷的API,使开发人员能够轻松地执行数据库查询、插入、更新和删除操作。此外,SwiftData还提供了数据模型映射功能,方便将数据库中的表映射到Swift对象上。使用SwiftData可以加快iOS应用...

Core Data 学习

Core Data 简介 Core Data 是什么 Core Data是 iOS SDK 里的一个很强大的框架,允许开发者以面向对象的方式存储和管理数据。可以帮助建立代表程序状态的模型层,能将模型对象的状态持久化到磁盘。Core Data 使用包括实体和实体间的关系,关系是构筑实体(Entity)间相互联系的桥梁,它决定了一个实体如何对另一个实体产生影响。Core Data 中的每一个...

iOS Test Case

前言 在iOS 测试中依赖三个基本模块: Unit Tests: 单元测试用于验证应用程序中各个独立单元(如函数、方法或类)的行为是否符合预期,确保每个单独的模块 (或一段代码,主要是功能) 是否能正常工作。 UI Tests: UI测试则专注于验证应用程序界面的行为是否符合预期,例如确保按钮点击后触发正确的操作。性能测试用于评估应用程序在各种条件下的性能表现。 Snaps...

Awesome Free ChatGPT

这里列出的网站都是来源于互联网,请注意不要在这些网站输入任何个人的敏感信息。 ChatGPT 镜像列表 注: 🆓完全免费,打开即用 💪支持 GPT4 🔓有免费额度 🧰不仅仅是 Chat,支持其他模型或其他功能 🌎需要国际网络 序号 网站 标签 ...