swift中AppDelegate和Context的作用是啥?

Posted

技术标签:

【中文标题】swift中AppDelegate和Context的作用是啥?【英文标题】:What is an the function of AppDelegate and Context in swift?swift中AppDelegate和Context的作用是什么? 【发布时间】:2016-07-29 10:53:19 【问题描述】:

我刚开始使用 swift 在 ios 应用开发中处理核心数据。我遇到的前两件事是:1. AppDelegate 2. NSManagedObjectContext。

    我知道“AppDelegate.swift”文件是一个源文件,就像“ViewController.swift”一样。但在所有教程中,它都被称为“稍后将使用的东西”。也许,现在是熟悉它的时候了。你能告诉我它到底是做什么的吗?

    “NSManagedObjectContext”类型的对象有什么作用?它的作用是什么?能否请您用更简单的词来说明它的功能?

提前致谢。

【问题讨论】:

【参考方案1】:

请看下图,直观了解iOS应用中的关键对象:

AppDelegate 的角色:

应用委托是应用代码的核心。它处理应用程序初始化、状态转换和许多高级应用程序事件。这个对象也是唯一保证在每个应用程序中都存在的对象,因此它通常用于设置应用程序的初始数据结构。

AppDelegate 用于整个应用程序,您可以使用它来管理应用程序的生命周期,而 ViewController 用于单个视图。您可以使用它来管理视图的生命周期。一个应用程序可以有多个视图。但只有一个 AppDelegate。

NSManagedObjectContext 的作用:

NSManagedObjectContext 是核心数据的一个基本概念。它就像关系数据中的事务。您可以获取对象,可以创建对象,更新和删除它们,将它们保存回持久存储等。基本上对于所有核心数据操作,您都需要与 NSManagedObjectContext 进行交互。

【讨论】:

【参考方案2】:

    UIApplicationDelegate 是设备(iOS 系统)和您的应用程序之间的接口。你将在这个类中处理推送通知

    上下文更复杂。通常,来自 CoreData 的所有对象都有一些上下文,负责同步该上下文中的所有对象。因此,如果您获取对象 A 并且在其他代码点中,您将再次获取该对象(我们称之为 A2)并且两者都在相同的上下文中获取,那么A == A2 始终为真。但这只是冰山一角。

【讨论】:

以上是关于swift中AppDelegate和Context的作用是啥?的主要内容,如果未能解决你的问题,请参考以下文章

将 AppDelegate.h 和 AppDelegate.m 替换为 AppDelegate.swift

在 Swift 5.0 中从 AppDelegate 实例化窗口失败 [重复]

AppDelegate Swift 中的 reloadData

swift : AppDelegate 和 NSManagedObjectContext 为 nil

在 AppDelegate (Swift) 中切换视图

Swift - 在 AppDelegate 中实例化视图控制器