Xcode4核心数据模型编辑器显示问题

12
自从我升级到 xcode 4 后,就一直遇到这个问题。在核心数据模型编辑器中,我无法看到我的图表视图。其他大部分功能似乎都可以正常使用,但是图形视图通常是空白的。如果我在列表中点击实体,我会得到一个屏幕,看起来像这样:http://imgur.com/zE1Ci

我还没有遇到这个问题,但是X4数据模型编辑器肯定出了问题。 - TechZen
我使用的是TechZen,在Xcode 4.0.x中,模型编辑器并不是很好用。最好还是坚持使用3.2.6版本,直到有新的Xcode 4版本修复了这个问题。 - Tom Harrington
我在Xcode 4中导入和使用在Xcode 3.x中创建的模型时,也遇到了奇怪的行为,特别是设计师没有显示关系。观看WWDC 11视频时,我看到下一个Xcode版本中将有一个下拉菜单来选择CD模型的Xcode版本... - codeclash
谢谢大家的评论 - 至少我知道我不是一个人。我喜欢绘制出大型图形视图以提供给我们的服务器端开发人员,但我想在苹果修复此问题之前,我必须找到另一种方法。 - p.pad
我也刚看到这个问题。过去一切都很正常(在Xcode4中),除了模型编辑器偶尔会崩溃。然后,在所有项目中,我似乎也遇到了这个问题。所有项目都是在Xcode4中创建的。 - drw
8个回答

8
我遇到了这个问题,以下是我如何解决的方法:
  1. 退出Xcode
  2. 在终端或Finder中删除文件myapp/myapp.xcdatamodeld/myapp.xcdatamodel/layout
  3. 重新启动Xcode并打开您的项目

注意:不能保证您不会丢失任何工作成果。但是,这个解决方案让我回到了一个工作正常的图形状态,在出现图形问题之前的点上,并且我没有丢失任何工作。


2
找不到你提到的文件。它在哪里? - sarunw
4
在较新版本的Xcode中,可能没有layout文件。相反,您只会有myapp/myapp.xcdatamodeld/myapp.xcdatamodel/contents文件。如果您在文本编辑器中打开此文件,您会看到它只是一堆XML。在其中一个部分最后描述了实体在编辑器视图中的位置。删除这个部分,保存文件,然后重新在Xcode中打开数据模型。 - aroth

4

我做了类似Chris的事情:

  1. 退出Xcode
  2. 在Finder中找到你的数据模型文件
  3. 将文件复制到安全的位置(我使用了桌面)
  4. 从项目文件夹中删除该文件
  5. 在Xcode中打开你的项目
  6. 在导航器中右键单击并选择“添加文件”
  7. 选择步骤3中的安全位置中的数据模型
  8. 如果需要,告诉它复制文件
  9. 点击“添加”

2
请检查你的“反向”关系。这些不匹配可能会导致“图形”视图变空。
比如,如果实体A和B有一个关系,请确保关系“ab”有正确的反向“ba”,反之亦然。 Xcode用户界面将使您能够手动输入不匹配的反向关系,然后只是时间问题,您就会看到空白图形了。

1
我正在使用Xcode 4.2.1,遇到了同样的问题。我不得不在vi上打开“contents”文件,并编辑文件末尾的位置。也许是因为某些错误,出现了很大的负值。一旦文件被编辑过,一切就恢复正常了。

0

对我来说,使用Xcode 4.3.2,问题在于即使我在模型的图形视图上修复实体的位置,如果我切换到编辑文本文件,然后再返回模型,它已经失去了许多但不是所有实体的位置。

有帮助的是,在编辑其他内容之前一定要手动保存文件。否则更改将不会被保存。苹果的工具如此不可靠,令人不安。


0
对于Xcode 4.5.2 (4G2008a),我按照Jaysen Marais的建议检查了所有关系,并确保它们都正确匹配/逆向实体合适。这样就可以再次显示图形。
通常在添加新实体或更改实体时会发生这种情况,所以请确保仔细检查。

0
在Xcode 4.5中,删除myapp/myapp.xcdatamodeld/myapp.xcdatamodel/contents文件并不能解决任何问题,相反,它使我的数据模型完全无法使用。相反,我将内容中的所有负值更改为0。然后它们再次出现在模型编辑器中,我手动重新定位它们。但是,以某些特定排列方式定位它们会导致模型编辑器冻结,所以我只需撤销最后一次更改并以不同的方式排列它们。
希望Apple在4.6中调试编辑器。最好提交一个错误报告。

0
在XCode 4.2.1中,您需要编辑的文件是其他答案中提到的“contents”文件。我还注意到我的内容文件中有非常奇怪的负值,但将其更改为正值并没有解决任何问题,将它们夹紧到较小的值也没有帮助。
最终,我退出了Xcode,备份了我的模型文件,然后只删除了内容文件末尾的部分中的所有条目。然后,我启动了XCode,并添加和删除了一个实体。它工作了一会儿,但在我移动了几个实体之后就恢复到了奇怪的状态。
最终让我解决问题的是删除我在问题开始前刚创建的实体。它是另一个实体的子级,我认为我创建了某种循环,这使解析器感到困惑。我有一个完全不同的实体,与父实体和子实体都有关系。最终删除子实体修复了问题,我只需要在编辑器中重新布置现有实体即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接