【问题标题】:Where is Core Data Entity in my Interface Builder Library?我的 Interface Builder 库中的核心数据实体在哪里?
【发布时间】:2011-01-17 20:12:06
【问题描述】:

我正在尝试通过将核心数据实体拖到 Interface Builder 中的 nib 文件中来在我的应用程序中使用它,但它似乎不在我的控件库中。

知道怎么进去吗?

谢谢

格雷姆

【问题讨论】:

    标签: xcode ios interface-builder


    【解决方案1】:

    我注意到这是 iOS 标记的,所以坏消息:Interface Builder 中的核心数据支持仅适用于 Mac,而不是 iDevices(到目前为止。)制作 MacOS X 笔尖,而不是 ios 笔尖,你会看到“托管库中的“对象上下文”和“核心数据实体”。 IB 的核心数据支持大量使用 Cocoa 绑定,它也仅在 MacOS 中可用(到目前为止);如果没有绑定,在 nib 中连接模型对象并没有真正的意义。

    要了解如何使用核心数据而不在 IB 中进行设置,请使用“基于导航的应用程序”模板创建一个新的 iOS 项目,并选中“使用核心数据进行存储”复选框。关键在于它创建的应用程序委托和 RootViewController 类;像往常一样,笔尖只包含 VC 和 UIView。

    【讨论】:

      【解决方案2】:

      Xcode 6.2 的 Cocoa 库中不存在核心数据实体。相反,您可以使用ArrayController

      1) 在 Xcode 中创建一个新项目:输入项目名称并选中显示Core Data 的框。

      2) 在您的项目文件中,选择 .xcdatamodeld 文件,并在界面生成器设置中an entity,这就像带有一些@properties 的 Cocoa 类:

      点击窗口底部的Add Entity。在上图中,实体名为 Book。该行最初将显示Entity 而不是Book。双击Entity 并输入Book

      单击属性区域中的+ 以添加属性及其类型。在最右边,(在顶部选中最右边的图标)您可以选中或取消选中该属性的其他属性,例如取消选中 可选

      据我所知,设置实体就像使用一堆 @properties 创建一个 Objective-C 类。

      3) 选择 MainMenu.xib 并将 TableView(使其基于单元格)和几个方形按钮拖到窗口上:

      对于按钮,在 Image 旁边的 Attributes Inspector 中,分别选择 NSAddTemplate 和 NSRemoveTemplate。在 TableView 中,双击列标题并输入列名。

      设置好视图后,将 ArrayController 从库中拖到 Dock 中。在 Identity Inspector 中,将 ArrayController 的 Label 更改为 BookController,如上图所示。标签允许您引用特定的 ArrayController,如果您的 xib 文件中有多个 ArrayController,这很方便。

      4) 接下来,在 Attributes Inspector 中指定 ArrayController 将存储和管理的实体或对象类型:

      同时检查Prepares Content。这将导致保存到磁盘的数据在 TableView 启动时加载到 TableView 中。

      5) 在 ArrayController 仍处于选中状态的情况下,转到 Bindings Inspector,在 Parameters 下将 ArrayController 绑定到 AppDelegate 并为 keypath 输入 managedObjectContext。 managedObjectContext 负责将数据写入磁盘:

      6) 接下来,将 TableView 的列绑定到 ArrayController。确保您选择了Book Title 列:

      在Value绑定下的Bindings Inspector中,绑定到BookController(给ArrayController的标签)。 Controller 键 arrangedObjects 是 ArrayController 中所有对象的排序数组。并且通过将 Model 键路径指定为 title,您是在告诉该列显示排列对象中每个对象的标题。

      在 NSTableView 中选择 Author 列并以类似的方式设置绑定。

      7) 选择+ 方形按钮,然后按住Ctrl 键并从该按钮拖动到ArrayController。释放后,在弹出的菜单中选择add:。然后选择- 方形按钮,然后按Ctrl+从按钮拖动到ArrayController。释放后,在弹出的菜单中选择remove:

      最后,为 - 方形按钮设置一个绑定,当 TableView 中没有要删除的项目时,它将禁用该按钮:

      运行应用程序并使用+ 按钮将条目插入TableView。我注意到如果我使用 Xcode 的 Stop 按钮停止应用程序,输入到 TableView 中的数据不会保存到磁盘。相反,我必须在菜单栏中的应用程序名称下选择退出才能将数据保存到光盘。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-06
        • 2018-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多