当前位置: 首页 > news >正文

Swift 周报 第二十三期

前言

本期是 Swift 编辑组自主整理周报的第十四期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。

欢迎投稿或推荐内容。目前计划每两周周一发布,欢迎志同道合的朋友一起加入周报整理。

勇敢是即便知道好结局不会每每降临在我们身上,但也依然选择热爱和坚持。Swift社区会伴你一起,见证每一刻勇敢的光亮!

周报精选

新闻和社区:苹果iPhone 15 Pro硬件细节曝光,广大网友期待USB-C接口迎来普及

Swift 论坛:讨论嵌套泛型的问题

推荐博文:iOS App 项目优化

话题讨论:

生活中遇到的问题你会使用 chatGTP 寻找答案吗?

新闻和社区

苹果iPhone 15 Pro硬件细节曝光,广大网友期待USB-C接口迎来普及

苹果在欧美市场已被多个监管施压放弃Lighting接口改为USB-C接口,最新关于苹果 iPhone 15 Pro硬件细节爆料消息,似乎透露着苹果公司将将在自家产品正式放弃Lighting接口改为 USB-C 接口。从苹果 iPhone 15 Pro 真机图片来看,苹果 iPhone 15 Pro 开始使用USB-C接口。随着安卓手机厂商普遍采用 USB-C 接口,目前来看苹果公司在自家新品上采用 USB-C 接口,也是整个手机行业的大势所趋。

除此之外,苹果 iPhone 15 Pro 硬件外观部分也更加圆润,同时音量键设计也改为电容式设计,后置摄像头的镜头模组也变得更加凸起,意味着苹果公司在新的 iPhone 15 Pro 机型镜头模组进行了升级。

总体来说,iPhone 15 Pro 大概率也将是 iPhone 14Pro 升级产品,相较前代机型,在细节部分进行了进一步的优化完善。来源: IT极客世界。

苹果也要“降本增效”?步亚马逊、Meta等公司后尘,大刀砍向员工

在亚马逊、微软、谷歌等国际科技巨头们裁员后,苹果也被曝出裁员消息。2 月 17 日,《纽约邮报》援引知情人士报道,苹果公司在过去几天裁减了数百名合同未到期的外包合同工。

作为全世界最赚钱的公司之一,苹果公司曾在 2022 年公开宣称不会裁员,但将停止招聘。但随着 2022 年四季度不及预期的财报发布后,苹果还是动了裁员的念头。

据苹果公司发布 10-12 月份的季度业绩显示,其实现总净销售额 1171.54 亿美元,同比下滑 5% ,不仅低于市场预期的 1211.04 亿元,还创造了 2019 财年来首次营收同比下滑。iPhone、Mac、可穿戴设备等业务营收均出现不同程度的下滑,仅iPad业务的营收实现了同比增长。

为挽救业务,苹果一方面加大促销力度,于 2022 年 9 月开始在中国销售的 iPhone 14 系列,在上市不到半年后即推出“全系降价 600 元- 800 元”的促销活动。搁往年,苹果最新款降价一般都在六七月份。如今,裁员也成为“降本增效”的新选择。

Swift论坛

  1. 讨论WebURL KeyValuePairs API

为了更容易地从 URL 组件读取/写入键值对,WebURL 0.5.0 将包含一个新的 KeyValuePairs 类型。 当前的 formParams 视图将在下一个次要版本中弃用和删除。

  1. 讨论将反射元数据划分为运行时和调试类别

目前的情况:

  • 可以完全启用或禁用反射功能。 (中间没有选项)
  • 当使用 -disable-reflection-metadata 标志禁用时,LLDB 将无法使用反射元数据,从而导致调试功能显着降低。
  • 启用后,dsymutil 将反射信息从 TEXT 复制到 dSYM 的 DWARF 段,这允许 lldb 稍后发现它。
  • 通过使用 -enable-reflection-for-debugger-only 标志,LLDB 可以使用反射,但是,它不会链接到 NTD,这将允许链接器通过 dead-stripping 消除它。

设计:

快速编译器:

  • 扩展 FieldTypeMetadataBuilder(可能还有其他构建器)并使其可从外部进行配置。

  • 在 emitFieldDescriptor 中实例化两个 FieldTypeMetadataBuilder,一个将直接在 _DWARF 中发射全反射,另一个将像往常一样发射反射到 _TEXT 段。 前者将由 -g 系列标志控制,而后者将由反射标志控制。

DSYMUTIL:

  • 更改 dsymutil,而不是从 TEXT 复制反射,而是将其复制到 DWRAF 段。

LLDB:

  • 可能需要更改 LLDB,以教会它在没有提供 DSYM 的情况下进行调试时发现 DWARF 段中的反射。
  1. 讨论防止优化 XCFramework 所需的公共接口(又名 dyld:未找到符号)

  2. 提议SE-0388:便捷 Async[Throwing]Stream.makeStream 方法

便捷 Async[Throwing]Stream.makeStream 方法”的审查现在开始,一直持续到 2023 年 2 月 26 日。

该提案可在此处获得:https://github.com/apple/swift-evolution/blob/main/proposals/0388-async-stream-factory.md

  1. 讨论Swift 开发容器模板

内容大概:

Visual Studio Code 的优势之一是您可以在 docker 容器内开发项目。 如果你在 macOS 上开发但部署到 Linux,你不再需要在 Linux 上运行你的代码来验证它是否工作,你可以在你的 Mac 上编辑、编译、运行和调试你的项目,在 VS Code 中运行的 docker 容器中。

到目前为止,您可以通过手动编辑 devcontainer.json 文件或下载由 Microsoft 管理的快速开发模板来定义容器环境。

由 Microsoft 管理模板意味着在需要对模板进行更改时需要他们的输入(通过 PR 审查),例如添加新版本的 swift。

最近这种情况发生了变化,Swift devcontainer 模板的责任已转移到 SSWG。 devcontainer 现在存储在 swift-server GitHub 组织中。

我们做的第一件事是使模板现代化。 我们用等效的 devcontainer common-utils 功能替换了原始模板具有的 shell 脚本。 您可以在此处找到有关 devcontainer 功能的更多信息。原始模板有一个安装 Node.js 的选项(在大多数模板中实现的标准 MS)。 这已被删除,因为现在可以通过 devcontainer 功能完成。

新的 devcontainer GitHub链接:https://github.com/swift-server/swift-devcontainer-template

  1. 提问嵌套泛型的问题
protocol P {}
struct S: P {}func foo<T: P>(_ value: T) {print(type(of: value)) // Sprint(value) // S()bar(value)
}func bar(_ value: S) { print("S call") }func bar<T: P>(_ value: T) { print("P call") }func test() {let s = S()bar(s) // S callfoo(s) // P call
}

calling bar 直接打印出预期的“S call”,但通过“foo”调用它会打印出意外的“P call”。我的期望是错误的?
有趣的是它在 C++ 中按预期工作。

  1. 提议Swift 异步算法提案:缓冲区

介绍:

缓冲是一种通过临时存储元素来平衡生产和消耗率波动来平衡供需的技术。 AsyncStream 通过允许您控制缓冲区的大小和处理超过该大小的元素的策略来促进此过程。 但是,这种方法可能并不适合所有情况,并且它不提供一种方法来调整其他 AsyncSequence 类型以合并缓冲。

该提案提出了一种新类型,可以满足这些更高级的要求,并为异步序列中的缓冲提供全面的解决方案。

  1. 提议自定义 Actor 执行器

介绍:

该提案侧重于使 actor 执行程序可由库作者或最终用户配置的最小可行部分。 它基于 @John_McCall 的自定义执行器 16 的早期草案,我们在 Swift 并发性首次引入时分享了该草案,但我们从未正式确定它引入的想法。

在过去的几年里,我们发现了什么有效,什么需要更多的思考。 该提案侧重于标准化基本的 SerialExecutor 机制以及参与者如何自定义他们想要运行任务的位置。 我们也承认之前提出的未来工作领域,我们不打算在本提案中一次解决所有这些问题; 请参阅“未来方向”部分以了解更多信息。 有趣的是,这个 API 的某些部分被默默地引入并融入了 Swift 并发的 ABI——在适用的情况下,我们解释了这些关系以及我们如何使提议的 API 满足那些现有的要求。

这个推介也与最近推介的 unsafeAssumeMainActor 想法有一点关系,因为它打开了共享同一个串行执行器的各种参与者的领域,并引入了基于此的断言。

话题讨论

生活中遇到的问题你会使用 chatGTP 寻找答案吗?

欢迎在文末留言参与讨论。

关于我们

Swift社区是由 Swift 爱好者共同维护的公益组织,我们会分享以 Swift实战SwiftUlSwift基础为核心的技术内容,也整理收集优秀的学习资料。

特别感谢 Swift社区 编辑部的每一位编辑,感谢大家的辛苦付出,为 Swift社区 提供优质内容,为 Swift 语言的发展贡献自己的力量。

相关文章:

Swift 周报 第二十三期

前言 本期是 Swift 编辑组自主整理周报的第十四期&#xff0c;每个模块已初步成型。各位读者如果有好的提议&#xff0c;欢迎在文末留言。 欢迎投稿或推荐内容。目前计划每两周周一发布&#xff0c;欢迎志同道合的朋友一起加入周报整理。 勇敢是即便知道好结局不会每每降临在…...

android系统屏幕旋转角度,应用界面横竖屏,设备旋转角度,三者的区别以及使用。

注意区分以下三种概念的区别&#xff01;&#xff01;&#xff01;。以及使用这三种方式判断横竖屏的方式。系统屏幕旋转角度fun getSystemRotation(): Int {val angle (getSystemService(WINDOW_SERVICE) as WindowManager).defaultDisplay.rotation//系统屏幕旋转的角度值re…...

【华为云-开发者专属集市】DevCloud+ECS、MySQL搭建WordPress

文章目录AppBazaar官网选择与购买项目项目概况操作过程购买DevCloud服务创建项目添加制品库应用部署购买ECS添加部署模板并执行任务故障排除安装及访问WordPress登录网站管理后台访问网站完善部署模板资源释放使用总结AppBazaar官网 首先&#xff0c;我们来到AppBazaar的官网&…...

Milvus 群星闪耀时|又一个小目标达成 :社区正式突破 15,000 星!

如果把 Milvus 看作开源世界中的一束微光&#xff0c;那用户便是无垠宇宙中点点闪烁的星光。用户每一次点亮 star 之时&#xff0c;Milvus 就会迸发出更加耀眼的光芒。不知不觉&#xff0c;已有数以万计的 star 为 Milvus 而亮。2022 年 4 月&#xff0c;Milvus 在 GitHub 的 …...

Qt信号与槽使用方法总结

前言 在图形界面编程中QT是为首选&#xff0c;组件之间如何实现通信是核心的技术内容。Qt 使用了信号与槽的机制&#xff0c;非常的高效、简单、易学&#xff0c;方便开发者的使用。本文详细的介绍了Qt 当中信号与槽的概念&#xff0c;并演示了各种信号与槽的连接方式。 什么…...

SpringCloud alibaba-Sentinel服务降级策略

文章目录RT&#xff1a;异常比例&#xff1a;异常数&#xff1a;RT&#xff1a; 平均响应时间 (DEGRADE_GRADE_RT)&#xff1a;当 1s 内持续进入 N 个请求&#xff0c;对应时刻的平均响应时间&#xff08;秒级&#xff09;均超过阈值&#xff08;count&#xff0c;以 ms 为单位…...

python常用函数——random()函数

random() 返回随机生成的一个实数&#xff0c;范围在[0,1)之间 语法如下&#xff1a; import random random.random() # 注意&#xff1a;random()是不能直接访问的&#xff0c;需要导入random包&#xff0c;然后通过random静态对象调用 # 参数&#xff1a; 无 # 返回值 返回随…...

PX4之启动脚本

PX4通过rcS脚本来设定需要启动的程序&#xff0c;比如设备驱动、控制模块、数据通信等。rcS脚本在项目中的文件位置 ROMFS/px4fmu_common/rcS 对应硬件平台固件上的位置 /etc/init.d/rcS 启动脚本流程如下 #!/bin/sh # PX4FMU startup script. # # 一些注释 ## 设置默认参…...

Java零基础入门到精通(持续更新中)

打开CMD命令窗口 WINR输入cmd 常用cmd命令代码 切换磁盘 E: 回车即可切换到e盘查看当前路径下的所有内容 dir进入目录 cd test回退到上一级目录 cd..进入多级目录 cd test\index\aaa回退到磁盘目录 cd \清屏 cls关闭命令行窗口 exit小例子&#xff1a;使用命令行窗口…...

杂七杂八(12):Bilibili视频缓存 m4s音视频合并 shell脚本

视频目录结构如下&#xff1a; 267132000/ 267132000/c_1015740000/ 267132000/c_1015740000/entry.json 267132000/c_1015740000/80/ 267132000/c_1015740000/80/audio.m4s 267132000/c_1015740000/80/video.m4s267132000/c_1015740011/ 267132000/c_1015740011/entry.json 2…...

Qt 某光谱仪程序开发

某光谱仪程序开发 文章目录某光谱仪程序开发摘要安装驱动注册COM组件导出.h和.cpp在Qt 中添加源文件开发打包程序关键字&#xff1a; Demo、 Qt、 COM、 dumpcpp、 C摘要 今天接到一个临时小任务&#xff0c;写一个的项目子模块的Demo&#xff0c;以供和专家们交流一下项目技…...

蛋白质组学技术与常见分析培训班火热招生中!

什么是蛋白质组学&#xff1f; 蛋白质组学(proteomics)&#xff0c;是以蛋白质组为研究对象&#xff0c;研究细胞、组织或生物体蛋白质组成及其变化规律的科学。包括蛋白质的表达水平&#xff0c;翻译后修饰&#xff0c;蛋白与蛋白相互作用等研究内容&#xff0c;集中于动态描述…...

唤醒手腕 Java 后端 Springboot 框架结合 socketio 学习笔记

socketio 安装配置 Socket.IO是一个完全由JavaScript实现、基于Node.js、支持WebSocket的协议用于实时通信、跨平台的开源框架&#xff0c;它包括了客户端的JavaScript和服务器端的Node.js。 Socket.IO除了支持WebSocket通讯协议外&#xff0c;还支持许多种轮询&#xff08;P…...

C++入门:内联函数、auto关键字、基于范围for循环及指针空值nullptr

目录 一. 内联函数 1.1 内联函数的概念 1.2 内联函数的特性 1.3 内联函数和宏的优缺点对比 二. auto关键字&#xff08;C11&#xff09; 2.1 auto的功能 2.2 auto在使用时的注意事项 三. 基于范围的for循环&#xff08;C11&#xff09; 四. 指针空值nullptr&#xff08…...

Python遗传算法

1 人工智能概述 2020中国人工智能产业年会在苏州召开&#xff0c;会上发布的《中国人工智能发展报告2020》显示&#xff0c;过去十年(2011-2020) &#xff0c;中国人工智能专利申请量达389571件&#xff0c;占全球总量的74.7%&#xff0c;位居世界第一。 报告指出&#xff0c;…...

GEE学习笔记 六十四:绿色中国报告(个人版)

2019年上半年在遥感圈里最火的一篇文章莫过于这篇《China and India lead in greening of the world through land-use management》&#xff08;China and India lead in greening of the world through land-use management | Nature Sustainability&#xff09;&#xff0c;…...

【Kubernetes】【十八】数据存储 高级存储 配置存储

高级存储 PV和PVC ​ 前面已经学习了使用NFS提供存储&#xff0c;此时就要求用户会搭建NFS系统&#xff0c;并且会在yaml配置nfs。由于kubernetes支持的存储系统有很多&#xff0c;要求客户全都掌握&#xff0c;显然不现实。为了能够屏蔽底层存储实现的细节&#xff0c;方便用…...

传输层TCP与UDP协议

目录 传输层 传输层功能 传输层所提供的服务 传输层的两个协议 TCP协议与UDP协议 端口 端口分类 IP地址和端口的关系 UDP协议 前言&#xff1a; UDP报文格式 检验和的伪首部 伪首部内容 TCP协议 TCP报文格式 TCP协议数据段的理解 TCP的伪首部 伪首部内容 标…...

字节数组的通俗解释

1.字节是通过网络传输信息&#xff08;或在硬盘或内存中存储信息&#xff09;的单位。2.在ASCII码中&#xff0c;一个英文字母&#xff08;不分大小写&#xff09;占一个字节的空间&#xff0c;一个中文汉字占两个字节的空间。注意&#xff1a;utf-8码中一个汉字占三个字节&…...

硬件学习 软件Cadence day06 原理图网表导入PCB (过程和操作的错误),开始的画板

1.新建一个制作芯片的工程 1.打开 File ->New 2.填写信息&#xff0c;设置路径 2.原理图的网表导入 1.打开这个窗口 File -> import ->Logic.. 2.确定信息 3.解决网表导入时出现的错误 1. 第一个案列 (没有找到文件 也是这个) 比如说&#xff1a; WARNING(…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

Chrome 浏览器前端与客户端双向通信实战

Chrome 前端&#xff08;即页面 JS / Web UI&#xff09;与客户端&#xff08;C 后端&#xff09;的交互机制&#xff0c;是 Chromium 架构中非常核心的一环。下面我将按常见场景&#xff0c;从通道、流程、技术栈几个角度做一套完整的分析&#xff0c;特别适合你这种在分析和改…...