SwiftUI async/await 并发代码提示 Non-sendable type cannot cross actor boundary 警告的解决

news2024/10/6 20:36:53

在这里插入图片描述

问题现象

从 Swift 5.5 开始, 为我们引入了新的 async/await 并发模型,使用它我们可以用更简洁的代码来实现复杂的并发功能。

async/await 并发模型同时也对大部分系统框架中的类型做了扩展,让它们在并发上重新“焕发青春”。

不过,我们在用新并发模型撸码的过程中,有些典型问题也会让人“愁城难解”:

在这里插入图片描述
在这里插入图片描述

如上图所示,编译器“怨气满腹”的警告着我们: NSPredicate 和 NSManagedObjectContext 两个 Non-sendable 类型的对象不能跨越 actor 边界(cannot cross actor boundary)

这是什么原因?又该如何消除这些警告呢?

本篇博文将会详细讨论并解决这些问题,小伙伴们还等什么呢?

Let‘s go!!!😉


问题分析

1. 追本溯源

我们首先贴出完整源代码,当然其中 evalP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/704409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习训练营之中文文本分类识别

深度学习训练营之中文文本分类识别 原文链接环境介绍前置工作设置环境设置GPU加载数据 构建词典生成数据批次和迭代器模型定义定义实例 定义训练函数和评估函数模型训练模型预测 原文链接 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦…

SpringBoot(实用开发篇)

SpringBoot实用开发篇 第三方属性bean绑定 ConfigurationProperties 使用ConfigurationProperties为第三方bean绑定属性 配置文件 datasource:driverClassName: com.mysql.jdbc.Driver servers:ipAddress: 192.168.0.1port: 80timeout: -1ServerConfig类: Dat…

PIC16F877A Proteus仿真太阳能市电互补供电系统蓄电池充电 -0051

PIC16F877A Proteus仿真太阳能市电互补供电系统蓄电池充电 -0051 Proteus仿真小实验: PIC16F877A Proteus仿真太阳能市电互补供电系统蓄电池充电 -0051 功能: 硬件组成:PIC16F877A单片机 LCD1602显示器AC220V市电转59V直流蓄电池充电电路…

机器学习讲了什么?如果你看不懂南瓜书和花书,先看看这本机器学习图解书

优达学城创始人Sebastian Thrun作序推荐, 机器学习布道者、Google和Apple前工程师Luis G. Serrano 倾情分享: 以图形的方式讲解机器学习经典算法和技术。 近年来,“人工智能”“机器学习”和“深度学习”蓬勃发展,各种新的技术和…

9-1小波变换 小波分解和重构(matlab程序)

1.简述 一、小波处理信号的一般过程 1)取样:这是一个预处理步骤。若信号连续,那么必须以能够捕获原信号必要细节的速率取样。不同的应用决定了不同的取样率。如:原信号的细节频率为20kHz,由Nyquist采样定理&#xff0c…

剑指 Offer !37. 序列化二叉树

剑指 Offer 37. 序列化二叉树 请实现两个函数,分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序…

Day43

思维导图 深拷贝和浅拷贝 1> 如果类中有指针成员时,如果没有显性的定义拷贝构造和拷贝赋值函数,系统默认提供的都只能实现浅拷贝,需要显性定义出深拷贝函数,为了完成指针成员的独立赋值,如果类中没有指针成员&#…

java面向对象之java继承

文章目录 一、java继承总结 一、java继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类…

Java之集合Collection

Collection接口有两个子接口:List(链表|线性表)和Set(集) ---|Collection: 单列集合---|List: 有存储顺序, 可重复---|ArrayList: 数组实现, 查找快, 增删慢由于是数组实现, 在增和删的时候会牵扯到数组增容, 以及拷贝元素. 所以慢。数组是可以直接按索引查找, 所以…

less和sass

less和sass 相比于css解决了什么问题? 答案:less和sass可以嵌套,可以使用变量;而css不可以 BEM/CSS modules/Atomic CSS/CSS in JS,这些方案应用于工程化中,解决了的问题是: 多人协同/大规模场…

Leonard ai 画明代皇帝肖像

链接: https://app.leonardo.ai/ai-generations prompt: Highly detailed doodle illustration of a Chinese emperor centered, isometric, mural, doodle, composition, shape, pattern, vector art ready to print Negative Prompt: …

mysql 触发器

触发器:当对某张表进行 INSERT、DELETE、UPDATE 操作时,会自动触发定义的触发器中的操作。顾名思义,当我们为某张表定义触发器后,向表中添加、删除、修改数据时,会触发触发器中定义的操作,触发器像是一个事…

Python语言中while循环的应用举例

Python语言中while循环的应用举例 while循环语句是Python语言中除了for循环外另一种循环结构,是需要掌握的两大循环语句之一。本文将基于例子讲解Python语言中while循环的应用,并用两个例子说明其应用。 一、while循环语句的含义 while语句用于在满足…

vue3学习之路

Vue3简介 面临的问题:随着功能的增长,复杂组件的代码变得难以维护,Vue3 就随之而来,TypeScript 使用的越来越多,Vue3就是 TS 写的所以能够更好的支持 TypeScript 在这里介绍就这么简单 vue2 的绝大多数的特性 在 Vu…

12.通用定时器基本原理

1.通用定时器概述: (1)STM32定时器 STM32F10x系列总共最多有8个定时器: (2)三种STM32定时器区别: (3)通用定时器功能特点描述: STM32的通用TIMx(TIM2、TIM…

快速点特征直方图(FPFH)描述子提取

快速点特征直方图(Fast Point Feature Histograms,FPFH)介绍 快速点特征直方图(Fast Point Feature Histograms,FPFH)是一种基于点的描述子,用于描述点云数据中的局部几何信息。FPFH描述子是在…

Scrapy框架之认识MongoDB

目录 MongoDB 简介 特点 MongoDB的适用场景 MongoDB的行业具体应用 如何抉择是否使用MongoDB MongoDB 简介 MongoDB 是免费开源的跨平台 NoSQL 数据库,命名源于英文单词 humongous,意思是「巨大无比」,可见开发组对 MongoDB 的定位。…

go读写文件总结

别人的经验: 如今任何计算机系统每天都会产生大量的日志或数据。随着系统的增长,将调试数据存储到数据库中是不可行的,因为它们是不可变的,主要用于分析和解决故障的目的。因此,企业倾向于将其存储在文件中&#xff0…

2023一建建筑市政全彩图文教材

本《建筑学全彩图文教材》改编自2022年官方指定的最新版本一级建造师《建筑工程管理与实务》教材。适用于2023年的第一次建造考试。2023年版教材出版上市后,我们将重点关注教材。补充电子版在变更处提供。 本书忠于官方原版教材,并不删除任何知识点&…

当大模型遇到数据仓库 HashData助力LLM规模化应用

6月30日,由 IT168主办的第十六届中国系统架构师大会(SACC2023)在北京开幕。本届大会以“数字转型 架构演进”为主题,议题涵盖AIGC大数据、多云多活、云成本等多个热门领域。 在会上,酷克数据首席科学家杨胜文发表了题…