在核心数据中使用占位符模板而不保存占位符?

时间:2016-02-27 05:39:25

标签: objective-c core-data nsfetchedresultscontroller partials

我想知道是否有可能拥有核心数据并使用NSFetchedResultsController来显示模板持有者;不将占位符模板持有者保存到核心数据。

我正在编写一个应用程序,其中表视图具有以下特征

  1. 最大行数(即:8)
  2. 每个单元格使用局部视图,单个表格单元格实例和可单击的按钮;
  3. Partial view: single table cell instance

    1. 用户点击按钮会替换每个按钮的内容

    2. 当用户来保存数据时,它会将内容存储在确切的位置,但至关重要它不应保存空白占位符状态;但仍然尊重放置位置。

    3.   

      IE:让我们说用户为单元格1选择正确的按钮并保存它;   当用户将来的某个时间返回此数据集时   应该将图像和数据放在正确的位置;但仍然保持   单元格1的左侧按钮为空(占位符)

      我不想保存占位符内容的原因是因为我认为这些数据是“脏”的;它没有意义,在数据集中没有位置; 它的观点;不是数据。

      目前:

      1. 我使用insertInManagedObjectContext创建数据,但在用户按下保存之前不保存。
      2. 每个matchRow都有很多战士。此关系为NSOrderedSet,由核心数据管理。
      3. 我遇到的问题是;

        1. NSFetchedResultsController仅尊重已保存的核心数据项;并忽略占位符数据。

        2. 如果用户只保存一个(右键)数据,NSOrderedSet会将此视为第一个(左键)数据;这是正确的

        3. 如果我在预保存操作中从核心数据中删除所有占位符结构,效果是用户想要的顺序现在丢失,并且在重新加载时会导致崩溃,因为数组的大小不正确。

        4.   

          目前解决这个问题的唯一方法是停止使用   NSFetchedResultsController并使用NSArray;并将占位符放入数组中,然后保存所有内容(脏对象)和所有内容。

          我真的不想这样做。占位符内容无意保存。

          我一直在阅读blog post使用单独的类来处理他有不同数据源的特殊情况;并使用该技术为“空”案例分隔类,并在表空视图为空时将其设置为表视图的数据源。

          虽然这很有趣,但它只能解决一个空箱子;当我的要求是局部视图应该处理所有状态;空数据和部分数据。

          我的一个想法是我们需要记录和匹配行之间的另一个实体;

            

          匹配 - MatchRowMeta - 战斗机

          不确定关系是什么

          其中;

          RowMeta {
          record.obj (relationship)
          fighters.obj (relationship)
          positionID (integer) - which button has been set
          }
          

          但我不认为这是最好的方法;做一些比较简单的东西看起来很昂贵而又很繁重。

          因此,我的问题是:

          是否可以使用由模板支架组成的桌面视图;结构保存到核心数据但没有保存空(脏)对象;加NSFetchedResultsController将尊重结构;即使它是空的还是部分空的?

          编辑:添加实体图

          entity diagram

0 个答案:

没有答案