我想知道是否有可能拥有核心数据并使用NSFetchedResultsController
来显示模板持有者;不将占位符模板持有者保存到核心数据。
我正在编写一个应用程序,其中表视图具有以下特征
用户点击按钮会替换每个按钮的内容
当用户来保存数据时,它会将内容存储在确切的位置,但至关重要它不应保存空白占位符状态;但仍然尊重放置位置。
IE:让我们说用户为单元格1选择正确的按钮并保存它; 当用户将来的某个时间返回此数据集时 应该将图像和数据放在正确的位置;但仍然保持 单元格1的左侧按钮为空(占位符)
我不想保存占位符内容的原因是因为我认为这些数据是“脏”的;它没有意义,在数据集中没有位置; 它的观点;不是数据。
目前:
insertInManagedObjectContext
创建数据,但在用户按下保存之前不保存。NSOrderedSet
,由核心数据管理。我遇到的问题是;
NSFetchedResultsController
仅尊重已保存的核心数据项;并忽略占位符数据。
如果用户只保存一个(右键)数据,NSOrderedSet
会将此视为第一个(左键)数据;这是正确的
如果我在预保存操作中从核心数据中删除所有占位符结构,效果是用户想要的顺序现在丢失,并且在重新加载时会导致崩溃,因为数组的大小不正确。
目前解决这个问题的唯一方法是停止使用
NSFetchedResultsController
并使用NSArray
;并将占位符放入数组中,然后保存所有内容(脏对象)和所有内容。
我真的不想这样做。占位符内容无意保存。
我一直在阅读blog post使用单独的类来处理他有不同数据源的特殊情况;并使用该技术为“空”案例分隔类,并在表空视图为空时将其设置为表视图的数据源。
虽然这很有趣,但它只能解决一个空箱子;当我的要求是局部视图应该处理所有状态;空数据和部分数据。
我的一个想法是我们需要记录和匹配行之间的另一个实体;
匹配 - MatchRowMeta - 战斗机
不确定关系是什么
其中;
RowMeta {
record.obj (relationship)
fighters.obj (relationship)
positionID (integer) - which button has been set
}
但我不认为这是最好的方法;做一些比较简单的东西看起来很昂贵而又很繁重。
因此,我的问题是:
是否可以使用由模板支架组成的桌面视图;结构保存到核心数据但没有保存空(脏)对象;加NSFetchedResultsController
将尊重结构;即使它是空的还是部分空的?
编辑:添加实体图