IBOutlets未在XCode 6.1上显示(6A1052d)

时间:2014-11-16 12:41:44

标签: ios objective-c xcode xcode6 xcode6.1

这是一个非常重要的问题:奥特莱斯没有出现在IB中。

重现:

1)我将变量声明为IBOutlet,例如在我的视图控制器的.h文件中

@property (nonatomic, strong) IBOutlet UILabel* testlabel;

2)我打开故事板,点击viewcontroller。 - 如果这是一个新项目,则没有“Outlets”列表。 - 如果这是一个已定义出口的旧项目,“出口”列表包含以前的出口,但不包括我添加的出口。

有没有人遇到同样的问题。这非常重要,因为除非我停止使用奥特莱斯,否则我基本上无法继续。我在发行说明中找不到任何关于它的信息。

编辑我在youtube上添加了一个显示问题的视频,以防我没有正确解释。如果我忘了一些明显的东西,我很高兴被嘲笑:)说,我一直都在遵循这些相同的行动,奥特莱斯一直都在列表中。

编辑2 为清楚起见,我删除了ivar声明,因为它似乎引起了大部分注意。

Outlets on Youtube

编辑3 好的我似乎遇到了之前在this questionthis other question上遇到的问题。基本上,如果我打开自定义类下拉列表,我只会看到一些“标准”类,例如UIViewController。如果我选择其中任何一个,我会得到奥特莱斯。例如,对于UIViewController,我总是有视图 - >视图。但是,我的项目的类不在下拉列表中。手动输入名称似乎有效,但实际上并非如此。必须有一些索引问题(除了我已经从

删除了所有内容)
~/Library/Developer/Xcode/DerivedData/

没有成功。如果您想尝试,我已将我的代码放在GitHub上。这并没有为我显示奥特莱斯,但它确实为许多其他人 - 所以它严格来说不是代码的“错误”。这更像是一个XCode问题。欢迎任何帮助!

编辑4 我认为这就是问题所在:看看右边。下拉菜单不显示“ViewController.h”类。如果我手动输入它,它似乎认出它,但实际上我怀疑它没有。在以前的时间里,我总是在下拉菜单中看到项目类的完整列表。 Class list is just generic

4 个答案:

答案 0 :(得分:4)

我找到了“解决方案”或解决方法。删除XCode数据是不够的,仅重新启动它是不够的。以下序列使Outlets神奇地重新出现并正常工作:

  1. 清理项目
  2. 关闭XCode
  3. 删除〜/ Library / Developer / Xcode / DerivedData /
  4. 的所有内容
  5. 重新启动MacOs
  6. 通过这样做,当您重新打开XCode并重新索引时,它将按预期显示出口。

答案 1 :(得分:1)

只需声明IBOutlet,就像这样:

@property (nonatomic, strong) IBOutlet UILabel* testlabel

答案 2 :(得分:1)

也许是一个非常愚蠢的人,但你试过Clean Project Folder然后删除DerivedData(当Storyboard未打开时),立即退出Xcode,再次打开Xcode,然后构建你的项目

答案 3 :(得分:0)

我遇到了类似的问题,但这是由于Xcode(8.2)中的一个错误,如果这些出口已使用_Nullable类型注释声明,那么Interface Builder不会在Connection Inspector中显示出口Swift兼容性。

在@ property的括号内使用nullable似乎可以解决问题。

(我知道原始海报的问题没有使用类型注释或Xcode 8,所以略有不同,但问题摘要与我的互联网搜索相匹配,所以我为未来的搜索者提到了这一点。)