gpt4 book ai didi

cocoa - 使用 Core Data 将 nib 拆分为多个 nib 文件

转载 作者:行者123 更新时间:2023-12-03 17:26:40 27 4
gpt4 key购买 nike

目前,我有一个托管上下文、许多相互关联的实体 NSArrayController,以及几个 Windows,每个 Windows 都使用 1 或 2 个 NSArrayController。 Windows 使用核心数据绑定(bind),所有设置均通过 IB 中完成的 cocoa 绑定(bind)进行设置

我现在有 1 个 Nib (xib),里面有所有东西。通常,在使用我的应用程序时,我只会打开其中一个窗口,而不想加载其他所有窗口。因此,按照苹果的建议和常识,我想闯入许多 Nib (理想情况下每个窗口一个)

关于如何加载单独的 nib 文件,我没问题,但是如何将这一切分开并仍然保持它们相互链接?似乎当我创建一个新 Nib 时,我无法在它和另一个 Nib 之间进行连接。出于很多原因,这是有道理的,但是我该如何解决呢?我是否只需切换到以编程方式执行所有绑定(bind),然后在 Nib 加载时设置我的绑定(bind)?也许将我所有的 NSArrayController 放在一个中央 Nib 中并立即加载它们,然后在我访问该功能时加载每个窗口的 Nib 并在此时进行绑定(bind)是有意义的?

最佳答案

将 View Controller (VC)紧密地连接在一起是一个设计错误。对于小型应用程序来说,单向传递一大块数据通常是可以的,但理想情况下您甚至不想这样做。

理想情况下,数据模型并且只有数据模型会记住 View /VC 之间的数据。每个 VC 仅与数据模型及其 View 进行通信。设计目标是封装每个 VC Controller ,使其可以独立工作,无需引用任何其他 View 。

实现这一点的关键是要认识到数据模型是应用程序的实际核心。这就是应用程序的关键逻辑所在。设计良好的数据模型应该与 UI 无关,并且能够支持任何类型的界面。例如,相同的数据模型应该支持 View UI、网页 UI、命令行 UI 或脚本接口(interface)。

例如,假设您有一个应用程序,其核心功能是捕获两个数字、保存它们、将它们相加并返回结果。很容易在 VC 中进行加法并立即显示结果。但是,由于这是核心功能,因此数据模型应该进行添加。这样,任何 View 或任何界面都可以通过引用数据模型中的函数轻松添加数字。如果你想添加额外的 View ,每个新的 VC 只需要了解数据模型,而不是任何其他 VC。

这还有一个实际优点,可以轻松地将应用程序分解为多个 Nib 。每个 VC 都有自己独立的 Nib 。由于每个 VC 仅与数据模型通信,因此您只能在需要时以任意顺序加载 nib(只要 VC 的数据位于数据模型中。)

您可能需要退出并重新考虑您的整体应用设计。将连接 VC 的逻辑和数据移至数据模型中。然后将 VC 分解为模块化 Nib 就会很简单。

关于cocoa - 使用 Core Data 将 nib 拆分为多个 nib 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3192285/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com