当我使用2个表视图时,如何将数据(托管对象)从一个tableview移动到另一个tableview?

时间:2011-11-29 06:57:18

标签: iphone objective-c ios uitableview core-data

情况

两个tableviews(我使用coredata)

如果有两个tableview,是否可以在它们之间移动数据?

像“很棒的笔记应用程序”(将备忘录移动到文件夹.....)

例如,在第一个表视图中,我输入了一些数据,如A, B, C, D, E, F

其中,我想将DATA(C, D, E, F)移到第二个tableview,我想知道只有A,B只能在第一个tableview中显示

请注意:数据未修复......

A, B, C, D, E, F ------> Tableview 1 (if I input change method)

C, D, E, F ------> Tableview 1 &&& A, B -------> Tableview 2

查看结构

main view(UIView) ------> tableview 1.

                  ------> tableview 2.

2 个答案:

答案 0 :(得分:1)

人们建议的解决方案并不好。

添加BOOL的问题在于它不可扩展,它正在处理症状,而不是问题。

问题在于您需要看起来像父/子关系的东西。

使用你的备忘录/文件夹示例,你需要这样的东西:

folder <-->> memos

答案 1 :(得分:0)

问题下的第二条评论:

您不应该创建新的东西,只需编辑旧的数据模型。为此目的使用图形方案:

  1. 点击你的对象模型,这将为你打开图表

  2. 点击您感兴趣的课程(例如“实体”)

  3. 添加属性(例如'belongsToTable1')并将其类型设置为

  4. 编辑(将新属性添加到源)或生成(您可以手动执行或在xcode的帮助下自动生成)新来源(在这种情况下不要忘记删除旧属性)你的“实体”课程。

  5. 请注意,在此步骤(更改数据模型图之后),您的数据库不再与数据模型对应,因此如果您现在启动程序,它将崩溃。因此,您必须找到项目的数据(它应该是〜/ Library / Application Support / iPhone Simulator / your.SDK.version / codeOfYourApp)并删除您的数据库文件。

  6. 像以前一样启动您的项目,如果它没有落下,您已正确完成了您的更改。从现在开始,在您的项目中使用您更新的Entity类。

  7. 不要忘记,核心数据中的BOOL用NSNumber类型表示。所以当你从对象中读取属性时,你应该使用类似的东西:

    if ([objectOfEntityClass.yourBoolParameter boolValue]) {}
    

    当你设置它时,你应该使用像

    这样的smth
    objectOfEntityClass.yourBoolParameter = [NSNumber numberWithBool:yourBoolValue];
    

    此外,如果答案对您有用(例如我的回答),请不要忘记将其标记为您问题的答案或至少将其投票;)

    希望这有帮助,祝你好运!