对 SwiftUI 的 alert(isPresent:error:actions:)
修饰符的一个非常小的重新封装。
此库没有足够多语言的本地化字符串,欢迎 fork 并提交 PR!
要在您的 SwiftUI 应用中使用错误处理器,需要几个步骤来初始化它。在我们开始之前,不要忘记 import ErrorHandler
。
前往 <您的项目名称>App.swift
,在您的 app 的大括号内添加 @Environment(\.errorHandler) private var handler
。
@main
struct SampleApp: App {
@Environment(\.errorHandler) private var handler
// body: some Scene { ...
}
然后,将 errorAlert(handler:)
修饰符添加到您的 ContentView
。
@main
struct SampleApp: App {
@Environment(\.errorHandler) private var handler
var body: some Scene {
WindowGroup {
ContentView()
.errorAlert(handler: handler)
}
}
}
一旦您设置了错误处理器,您就可以在任何地方使用它。这是一个示例
// You have you get handler from environment first.
//
// use
// @Environment(\.errorHandler) private var handler
// to get it
withErrorHandler(handler) {
// do something may occur error
}
此库提供了两种主要的错误处理方法。
最简单的一种,直接处理错误
withErrorHandler(handler) {
// actions may occur error
}
您还可以在用户点击“确认”按钮后执行自定义操作。
withErrorHandler(handler) {
// actions may occur error
} handlerAction: {
// actions that will execute after user click "confirm" button
}
该库还提供异步版本的函数来支持并发,它们都用 @MainActor
标记。这些函数支持需要在异步环境中运行的 throw-actions。
await withErrorHandler(handler) {
// actions may occur error in asynchronous environment.
}
await withErrorHandler(handler) {
// actions may occur error in asynchronous environment.
} handlerAction: {
// actions that will execute after user click "confirm" button
// handler action DOSE NOT SUPPORT concurrency
}