Xcode 4.2编译原型单元失败

时间:2011-08-12 15:17:19

标签: xcode interface-builder storyboard

我正在尝试新的Xcode 4.2 Beta,我想知道我的代码是错还是我碰到了一个bug。

新的故事板功能很有前途,但目前非常错误。现在我用tableview创建了一个简单的项目。此tableview将是包含UITextFields的“分组样式”。故事板的新“原型单元”功能允许您在GUI中创建原型单元,您可以使用方法cellForRowAtIndexPath中的“重用标识符”进行绘制。 当我在这个“原型单元格”中拖入UITextField并将其绘制出来时,效果很好!

然而!当我将此文本字段引用到我的代码中的插座时,我收到错误: 未分类 编译失败。无法写入路径:...(DerivedData的路径)

这是为什么? 这是一个错误吗? 其他人得到这个吗?

7 个答案:

答案 0 :(得分:31)

我在Xcode 4.2(也是最终版本)中偶尔遇到过这个问题。

它通常与您设置的插座或其他连接有关,编译器对此感到不满(缺少更好的术语)。诀窍是确定哪个连接。

您可以通过执行以下操作在Xcode 4.2中查看构建过程的详细输出:

  1. 切换到最左侧窗格中的日志导航器
  2. 选择“构建”
  3. 您应该看到错误,包括编译失败错误。
  4. 您可以通过单击最右侧的图标(看起来像列表)来展开该错误的构建日志。这应该扩展并显示导致问题的错误。

答案 1 :(得分:4)

如果任何人仍然有这个问题我发现解决方案是使用标签而不是出口。

的cellForRowAtIndexPath UILabel *titleLabel = (UILabel *)[cell viewWithTag:1001]; titleLabel.text = @"Name";

答案 2 :(得分:4)

好的,我的同事向我展示了连接检查员,瞧,有一个旧连接导致构建失败。因此,选择.storyboard文件,打开连接检查器(带箭头的最后一个),它将为您提供所有连接的概述。

答案 3 :(得分:1)

我没有完美的解决方案来解决你的问题,但我也有同样的方法,我找到了一种方法使其工作(没有将插座连接到TableViewController)。

尝试从头开始重建您的视图并构建&每次添加组件时都会运行。

为了添加一个TableViewController =>测试它是否显示空表。

设计您的自定义单元格并将单元格的Outlets链接到它。 (不伪造更改TableViewCell的类)=>再试一次

然后将TableViewController的Class更改为您的类,现在您就可以访问您的单元的出口。

它对我有用。我希望它适合你。

答案 4 :(得分:1)

我必须在〜/ Library / Developer / Xcode / DerivedData /中重新删除我项目的文件夹。您可以使用上面的Tony程序在日志中找到该文件夹​​的名称。

编辑: 我现在认为这是Xcode(版本4.2.1)中的一个错误。这对我来说是间歇性的。为了解决它,我必须重建,有时两到三次。建立/清洁似乎没有帮助。

编辑2: 好的,希望是真正的问题。我在项目导航器中有两个对我的故事板的引用(可能是复制/重建项目的遗留物)。我刚删除其中一个(确保只删除引用!)。似乎可能是问题(Xcode同时编译同一个文件两次)。

答案 5 :(得分:1)

当我尝试在故事板ID的名称中添加/时,我收到此错误。检查您是否使用安全字符! (DOH!)

答案 6 :(得分:0)

您不应将标题或图像或细节标签添加到插座。

为什么你还需要一个插座?

在实现协议时,它们会在代码中隐式修改。