gpt4 book ai didi

ios - 错误处理、持久容器、通知 IOS

转载 作者:行者123 更新时间:2023-11-28 05:59:49 25 4
gpt4 key购买 nike

你好,我正在使用核心数据构建我的第一个应用程序并且有项目设置问题,我已经跟随一个视频并尝试构建一个与我观看的演示类似的应用程序。

我手动创建了核心数据堆栈,但不确定如何完成 persistentContainer。

我已经搜索过,但我不确定如何记录错误以开始(我可以在任何特别的地方寻找解决办法)?其次,我知道如果发生错误我需要通知用户,并且正在考虑按以下方式处理这种情况:

在 launchScreenViewController 文件中(我指的是应用程序打开时将出现在屏幕上的第一个 View Controller 。

  1. 将 View Controller 嵌入到导航 Controller 中
  2. 导入 UserNotifications 框架
  3. 使 launchScreenViewController 类符合 UNUserNotificationCenterDelegate
  4. 在 VC 类中添加一个变量存储属性来保存通知的访问状态
  5. 应用程序 View 加载后,内部 View 确实加载请求授权

我的思考过程是这样的,为了发送有关持久性存储容器不工作的警报/通知,我需要首先获得用户的访问权限才能正确发送通知????

在设置错误处理时,我是否应该创建一个枚举,其中包含尝试初始化持久存储容器时可能发生的所有错误选项?在应用程序演示中,我们调用了 fatal error ,但被告知不要以这种方式发布应用程序。

我的流程和设置是否朝着正确的方向前进?

最佳答案

处理警报的更直接方法是使用 UIAlertController 并在 CoreData 响应失败时显示该 Controller 。

First create a new empty swift file and copy the following code into it

我将其命名为 Alerts+UIViewController

extionsion UIViewController {

func doFailedAlert(_ message: String, _ error: NSError) {
DispatchQueue.main.async {
let alert = UIAlertController(title: message, message: "\(error.localizedDescription)", preferredStyle: .alert)
let action = UIAlertAction(title: "Oh No!", style: .destructive, handler: nil)
alert.addAction(action)
self.present(alert, animated: true)
}
}

}

然后,您可以从您应用中的任何 UIViewController(甚至嵌套在闭包中)调用 doFailedAlert("someMessage", someError) ,它会显示一条警报,其中包含您想要的消息和错误。

当您准备好部署时,您可能希望以不同方式处理错误消息。用户不会关心这些细节,但作为开发人员的你会关心。拥有一个包含所有可能错误的枚举对您非常有用,所以我建议这样做。如果确实发生错误,您甚至可以使用该枚举向用户提供有意义的错误消息。

关于ios - 错误处理、持久容器、通知 IOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50161544/

25 4 0
文章推荐: html - 水平下拉菜单的子菜单不垂直
文章推荐: swift - 无法将 Realm 列表从 List 转换为 List