在 2023 年 6 月 6 日的 WWDC 23 上 Apple 推出了 Xcode 15,相比较 Xcode 14,它有如下变化。
项目
- 安装包的大小继续减小,安装速度继续提升,因为 iOS 的 Components 也需要动态下载安装,否则提示
iOS 17.0 Not Installed
,平台不同提示略有不同。 - 主界面的菜单图标与名称发生变化。
- 创建 iOS 项目时,增加了
Storage
选项,不再有Use Core Data
选项。
- 导航区的第三个菜单 Symbol navigator 替换为 Bookmark navigator。
- 调试区的菜单发生变化,并且输出的内容随着不同的级别拥有不同的背景色。
- Archive 时的 Distribute App 界面发生变化。
功能
- Assets 中的创建的
Image Set
与Color Set
可以生成类型安全的标识符,在程序中可以.标识符
的形式访问。
// UIKit
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UIColor(resource: .colorSet)
UIImage(resource: .imageSet)
}
}
// SwiftUI
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Color(.colorSet) // Color Set
Image(.imageSet) // Image Set,只是新建不行,还必须有图片
}
.padding()
}
}
- UIKit 与 AppKit 可以通过如下的宏(macro)实现 SwiftUI 一样进行实时预览。
// UIKit
public macro Preview(_ name: String? = nil,
traits: PreviewTrait<Preview.ViewTraits>...,
body: @escaping () -> UIView) -> () = #externalMacro(module: "PreviewsMacros", type: "Common")
public macro Preview(_ name: String? = nil,
traits: PreviewTrait<Preview.ViewTraits>...,
body: @escaping () -> UIViewController) -> () = #externalMacro(module: "PreviewsMacros", type: "Common")
// 使用
#Preview {
UIKit 预览内容
}
// AppKit
public macro Preview(_ name: String? = nil,
traits: PreviewTrait<Preview.ViewTraits>...,
body: @escaping () -> NSView) -> () = #externalMacro(module: "PreviewsMacros", type: "Common")
public macro Preview(_ name: String? = nil,
traits: PreviewTrait<Preview.ViewTraits>...,
body: @escaping () -> NSViewController) -> () = #externalMacro(module: "PreviewsMacros", type: "Common")
// 使用
#Preview {
AppKit 预览内容
}
- 增加 Documentation Preview,文档也支持预览。
- 代码支持添加 Bookmark,在某一行代码或者选中多行代码后右击,可以看到相应的添加菜单。可以在 Bookmark navigator 中查看添加的所有 Bookmark。
- 条件编译代码随着选择的条件会高亮显示对应条件的编译代码。
- 右击菜单 Show Quick Help 显示更加丰富的文档内容。
- 编辑时 Quick Actions 可以快捷访问对应内容的所有菜单,快捷键
command + shift + A
。 - 遇到多参数的方法时,可以通过键盘方向键 —> 显示所有可能的参数组合。
- 写完多参数的方法后,可以通过右击 Refactor —> Format to Multipl Lines进行格式化。