iOS摸鱼周报 第三十八期

本文介绍了Apple发布的Xcode 13.2和iOS 15.2的重要更新,包括Xcode的Swift编译优化和StoreKit测试新功能。同时,探讨了iOS内存管理机制,如虚拟内存寻址、内存不足的处理,并解释了在iOS系统中如何处理内存过高问题。此外,文章还涉及了面试中关于dealloc执行线程和NSString内存分配的解析。
摘要由CSDN通过智能技术生成

本期概要

  • 话题: Xcode 13.2 和 iOS 15.2 的正式版值得关注的几项新功能。
  • Tips:内存相关的一些机制。
  • 面试模块:dealloc 在哪个线程执行;NSString *str = @"123" 这里的 str 和 "123" 分别存储在哪个区域。
  • 优秀博客:SwiftUI 相关的几篇优秀博客。
  • 学习资料:软件随想录,Joel Spolsky 的 Blog 纸质版文集。
  • 开发工具:Dropshelf,一款 Mac OS 下的拖拽效率应用。

本期话题

@zhangferry:12 月 13 号,Apple 发布了 Xcode 13.2 和 iOS 15.2 的正式版。其中有几项新功能值得关注。

Xcode 13.2

编译系统和 Swift 编译器有了一个新模式可以充分利用 CPU 核心,以达到优化 Swift 项目的效果。该模式可选,可以执行如下命令打开:

bash defaults write com.apple.dt.XCBuild EnableSwiftBuildSystemIntegration 1

iOS 15.2

是关于 StoreKit 的新特性:

  • StoreKit 中展示退款请求的弹窗可以在 Xcode 中进行测试了。UIKit 模式下可利用:beginRefundRequest(in:) 或者 beginRefundRequest(for:in:) ,SwiftUI 下可利用 refundRequestSheet(for:isPresented:onDismiss:) 作为视图修饰器。
  • StoreKit 中管理订阅的弹窗也可以在 Xcode 中进行测试了。 UIKit 模式下课利用 showManageSubscriptions(in:) ,SwiftUI 下可利用 manageSubscriptionsSheet(isPresented:) 作为视图修饰器完成。

  • 新的 SKTestSession.TimeRate 值可用于 StoreKit Test 模块的自动化测试。

开发Tips

整理编辑:zhangferry

内存相关的一些机制

虚拟内存寻址

为了安全性,防止物理内存被篡写(还有其他很多优势),操作系统引入了虚拟内存机制,虚拟内存是对物理内存的映射,操作系统会为每个进程提供一个连续并且私有的虚拟内存空间。

实际的数据读写首先要通过虚拟地址找到对应的物理地址,这个过程就是 CPU 寻址,CPU 寻址由位于 CPU 的 MMU(Memory Management Unit 内存管理单元)负责。

为了便于管理,虚拟内存被分割为大小固定的虚拟页(Virtual Page, VP)。程序加载过程中,虚拟内存由磁盘到内存的映射是以页为单位进行处理的。每次映射完成都会

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值