Xcode 4:创build一个UIView xib,没有正确连接

我正在尝试创build一个包含将embedded在TableViewCell中的视图的笔尖。 我创build了接口和实现文件, ResultCell.hResultCell.m 。 他们是现货,开箱即用,没有代码的变化。

然后我创build一个空的XIB文件,并拖动一个UIView到它。 然后,我单击文件的所有者,并将types设置为ResultCell 。 我点击视图,并将其类设置为ResultCell

以下是我遇到的问题:

  1. 当使用“助理编辑器”视图(我居住在其中)时, ResultCell.h文件在查看ResultCell.xib文件时不显示。 我必须强制它加载通过点击自动并select文件。
  2. 当我在视图中放置标签,然后按Ctrl +单击并拖动到.h创buildsockets时,我收到以下错误消息:“ 无法插入新sockets连接:找不到有关名为ResultCell的类的任何信息。 “

我已经尝试过创build和重新创build视图,只是不工作,我已经开始失去耐心。 任何帮助将非常非常感激!

这可能不适用于您的特定问题,但偶尔会在使用新创build的笔尖时遇到此错误。 删除和重新创build与以前相同的名称和视图控制器没有解决问题,但重新启动Xcode做。

我今天刚刚进入了一个类似的状态。 这很奇怪:我可以将任何XIB(新的或现有的)附加到项目中任何已经存在的ViewController类,但是我不能创build一个新的ViewController,并将它正确地连接到任何XIB。 “助手”function不起作用,IB到头文件连接function也不起作用。

closures项目并重新开放并没有解决它。
退出XCode并重新启动没有解决它。
创build一个新的项目和testingfunction工作正常,这导致我相信某些caching某处某处损坏。

我的解决scheme

  • closures你的项目。
  • 转到〜/ Library / Developer / XCode / DerivedData文件夹,并删除引用您正在处理的项目的所有子文件夹。
  • 在XCode中打开你的项目。 这个问题现在应该解决。

顺便说一下,运行一个完整的清理似乎并没有把事情搞清楚。 我不得不垃圾的派生数据。 我敢肯定,因为我玩的是git游戏,所以我进入了这个位置,但是我不知道如何离开,因为即使切换回早期的git版本也没有帮助。 (这也是一个很大的线索,这是项目本身没有跟踪的东西。)

我只是有这个问题,重新启动Xcode没有解决它。 我从项目中删除了类文件,然后将它们添加回来,并开始工作。

我有同样的问题。 我试过了:

  • 重新启动Xcode
  • 删除派生数据
  • 还有很多

没有任何工作。 对我而言,只是为了:

  • 从项目中删除“可疑”类文件(只是删除引用,呵?)
  • 重新添加到项目中

并做了!

如果重新启动Xcode不起作用,我发现将新的.m文件切换回目标成员资格工作。

这帮了我的忙:

  1. 从项目文件面板(左侧)select破坏的xib文件。
  2. 点击编辑器视图中的文件所有者图标。
  3. 从属性面板(右侧)select第三个选项卡(在顶部)
  4. 指定“自定义类”

如果您没有看到“面板”,请查看窗口的右上angular并启用正确的“查看”button。 如果您没有看到“视图”button,则点击最右上angular的胶囊button。

我注意到.m文件被移到了en.lproj文件夹中。

只需从Xcode中删除(仅参考).m文件,然后将.m移出en.lproj。 再次添加它将解决问题。

别担心,你会把你所有的关系都收回来。

我今天遇到同样的问题。 重新启动XCode并没有解决我的问题。 使用Organizer下可以find的项目“Derived Data”“Delete”选项,我可以恢复正常。 组织者说,“派生数据包括索引,构build输出和日志”。 我猜想索引构build输出是造成这个问题。

在XCode去组织者,点击项目,点击删除派生数据…比清理项目

在我的情况下,它有助于做一个“假的变化”(只是一个空格)到相应的头文件。

  1. ResultCell应该是UITableViewCell一个子类
  2. 你不应该拖动一个UIView到空的canvas上,你应该拖动一个UITableViewCell
  3. 您应该select单元格并将其更改为您的子类
  4. 所有者通常是一个带有电池出口的控制器

每次你想加载一个新的单元格,请致电:

  [[NSBundle mainBundle] loadNibNamed:nibName owner:controllerWithOutletToCell options:nil] 

加载后,使用单元格,并设置伊娃/出口零,准备下一个负载

还有其他的方法,但是这是常见的

也许对我来说是这样的..(Xcode v4.5)

这没有奏效

我试图控制拖到我的.h的界面定义

 @interface SearchViewController : UIViewController 

@end

这工作 (可能是这是应该如何工作,我以前不知道)请参阅打开和closures括号。 控制在closures的括号之后拖放。

 @interface SearchViewController : UIViewController { } @end 

我用Swift编写的一个项目有类似的问题。

什么对我来说就是这样的代码设置IBOutlet

 @IBOutlet var foo: UIView? 

然后通过拖动到代码行旁边的小圆圈将其连接到Interface Builder。

上述解决方法都没有解决连接器问题,所以我搁置了我的宠物项目,直到我遇到下面的stackoverflow线程:

https://stackoverflow.com/a/15873770/2846800

我以前在XCode版本中正在开发一个大型项目,并closures了索引。 通过重新启用索引我的问题现在已经修复:

 defaults delete com.apple.dt.XCode IDEIndexDisable 

我现在可以使用Interface Builder的D&Dfunction。 我希望这可以帮助别人…

这个问题似乎是一个Xcode错误,主要是当你用一个同名的新文件replace一个文件时。 Xcode似乎保留了相同名称的旧文件的引用。

无论如何,解决这个问题的方法似乎是:

  1. 清理项目
  2. 在Project Navigator视图中单击(您的项目)。 在您正在构build的目标的“构build阶段”下转到“编译源代码”。 删除并添加给你麻烦的.m文件。
  3. 或者,在NIB文件的“文件检查器”(“实用程序”视图)中的“目标成员”下,取消选中并检查目标名称。
  4. 重新启动Xcode以获得更好的效果。
  5. 当然,单独删除和添加.m文件也应该修复它。

(只有步骤1和2为我固定。)

如果您从其他项目复制文件,请确保选中“添加到目标”框

重命名类文件可能会将其从XIB中断开。 这个答案帮助我发现了这一点:

Ctrl-从button拖动到方法不工作。 Xcode / Interface Builder

检查您的自定义类是否在Identity Inspector中正确设置。

类似的症状,但不同的原因。

显然,当重点放在助手视图上时,我弹回了空格,因为其中一个标准文件模板注释行从/到/导致文件不能编译。

修复注释允许SDKparsing文件,将其识别为UIViewController,并添加到sockets中。

所以 – 如果你有这个问题,做一个构build或分析,看看是否有错误需要修复你的视图控制器.h文件。 然后尝试其他解决scheme。

这可能是一个老话题,但为了防止以后任何人有同样的问题,请尝试删除关联的.xib,.h和.m文件并创build新的。 对我而言,我的.h文件中的UIViewController不是紫色的,甚至退格键入也没有帮助。

只需在@implementation和@synthesize之间加一行即可。 这里的大部分答案都有共同之处。 它为我工作

 @implementation @synthesize 

我只是尝试了一切,没有任何工作(使用Xcode 5的开发人员预览版)。

唯一对我有用的是把这个不完整的行放在我的接口文件中:

 @property (nonatomic, weak) 

无论出于何种原因,通过从.xib拖放来添加网点和操作都能很好地工作。

对于我来说,清理或删除DerivedData解决了这个问题。

我试图删除并重新创build我的UIViewController类多次,并一次又一次地得到了问题。

然后我重新创build了UIViewController类,并给它一个不同的名字。 这解决了我的问题。

我遇到了这个问题,并find了上面没有列出的解决scheme。

在我的情况下,我可以看到类.h文件中有错误,因为我的自定义视图控制器不能识别类:UIViewController(它是在黑色不紫色)。 所有其他自定义视图控制器都有:UIViewController的紫色。

在我的情况,也可能是你的,我需要添加类目标/构build阶段/编译源下拉。 .m需要添加。 所有其他的.m都在那里,但没有这个。

一旦我添加它,:UIViewController以紫色出现,一切正常。

对于我的情况,我有一些其他依赖关系的多个项目。 我试图通过删除派生的数据或重新启动XCode来解决它,但它不能工作。 最后,我尝试了下面的方法,它的工作原理:

转到目标>仅生成目标体系结构>并将“debugging”和“发布”均设置为“否”。

为工作区中的所有项目设置此项并重新编译以确保没有其他错误。 也许没有道理,但不知何故。 在编译期间,我遇到了其他问题,例如链接器错误和未find的符号。

对于此类视图的* .m文件,打开“显示文件检查器”并取消选中此项目的“目标成员”,然后执行清理(菜单产品 – >清理)并再次检查此项目的“目标成员”

在这里输入图像说明

使用Swift,我有一个类似的问题。 我发现评论是我的一部分问题。

我利用了默认的视图控制器,做了一些工作,然后创build第二个视图控制器,通过复制整个第一个视图控制器,剥离它只viewDidLoad()和重命名类TestViewController。 构build工作,代码执行。 一切都很好。

当我去拖动一个UITextField创build一个sockets,它不会让我。 我注意到我的意见仍然说“ViewController.swift”,所以我改变了评论文本“TestViewController.swift”,并重build。 我能够连接我的sockets!

我想知道是否索引者正在阅读评论以及类名,并且不知何故被弄糊涂了。

希望这可以帮助那里的人。

我只需要删除派生的数据文件夹。 您需要点击窗口 – >pipe理器 – >项目 – >删除派生数据

和重新启动XCODE。

你应该很好走!

不属于“目标”的新阶级可能是其中一些答案所暗示的根本原因。

当创build一个新的cocoa类时,默认情况下,添加新类到目标的选项是默认选中的,但是由于任何原因,当你点击保存时,这个选项不会被检查,你将会遇到这个问题。

新班级目标

任何将这些新类添加到应用程序目标的解决方法都可以解决这个问题,而这正是所有这些“修复”所共有的。

我认为XCode可能有一些错误,导致一个新的文件,默认情况下,不会被添加到应用程序的主要目标。 修正归结为添加您的“破”类到主目标

在XCode 7.1中,在我的源文件中的不同位置添加连接器。 错误,我被提到我的一个variables,好像它是一个类(没有任何意义)。 当我在variables下面添加连接器而不是在上面时,错误就停止了。

这个问题还有一个不同的原因…如果你创build了新的cocoa类文件,而不是ios的模板…我可以发生…

解决办法是删除它,并用正确的模板重新创build它 在这里输入图像说明