自从我开始使用Xcode(4.6.3)以来,这个bug一直让我疯狂。每当我尝试将Storyboard项目链接到我的代码时,我都会收到错误:
无法找到名为ViewController的类的任何信息。
自定义类也会发生这种情况。我尝试过如下方法:
无论类是什么,我都无法按住Ctrl键拖动以在任何项目中创建连接。全新的模板应用程序也会出现同样的问题。如果我手动输入代码然后按住Ctrl键拖动,我可以建立一个有效的连接,但是我无法自动添加它。到目前为止,我在互联网上找不到的任何东西都有帮助。有什么指针吗?
答案 0 :(得分:264)
为我解决这个问题实际上是从项目中删除了这个类。
步骤:
这似乎迫使Xcode将课程链接回故事板。
注意:对我来说,以下是不工作:
我认为这是Apple的一个错误
答案 1 :(得分:122)
如果有人仍对此感到沮丧,那就有办法让事情发挥作用。
我所做的是手动输入我的课程的插座,例如:@IBOutlet weak var someView: UIView!
,然后将从代码拖到IB或故事板中的视图。在此之后,我可以从IB / Storyboard拖到我的班级进行连接,助理编辑在“自动”中识别班级......等等。
每次都有效。
答案 2 :(得分:30)
答案 3 :(得分:9)
有时由于VC没有引用类文件,Xcode会这样做。对此的简单解决方案是:
手动写属性给定。
class YourClassName{
@IBOutlet weak var YourTableName: UITableView!
}
这将在@IBOutlet 之前创建一个空链接,在助理编辑器中打开您的项目,然后单击链接符号并拖动到您要连接的视图(我已连接)用TableView)。就是这样。享受快乐的编码!!!
答案 4 :(得分:6)
答案 5 :(得分:6)
我刚刚在2017年4月使用Xcode 8
解决了这个问题只需通过代码创建插座并进行编译即可修复它。例如:
@IBOutlet weak var containerViewHeight: NSLayoutConstraint!
你必须喜欢Xcode ......
编辑:仍然在Xcode 9上发生
答案 6 :(得分:5)
我尝试过所有的东西而且它没有用,所以对我来说有用的是:
我的所有视图控制器都没有被识别,因此删除所有文件并重新添加不是一个选项,因为这是一个大项目。
答案 7 :(得分:4)
对我来说,以下工作:
做一个'清洁'和一个干净的构建文件夹' (按产品菜单上的'选项以获取' clean build文件夹'命令
停止Xcode
在终端中,转到派生数据文件夹:
(数/用户//库/开发商/ Xcode中/ DerivedData)
删除项目的派生数据目录。
在空中挥动死鸡
启动Xcode
答案 8 :(得分:3)
如果人们尝试上述内容并且仍然无法正常工作,那对我有用的奇怪伎俩就是在一大块空白处添加插座。如果您正在添加的行的正上方或下方没有其他行,则它可以正常工作。奇怪,但它有效!
答案 9 :(得分:3)
对我有用的是,不是将按钮从按钮拖到代码,而是:
在我以这种方式链接我的代码之后,它从此开始正常工作。
答案 10 :(得分:2)
我尝试了所有这些答案,对我来说问题与Xcode无法索引文件有关。我通过简单地退出Xcode并重新打开项目来解决这个问题。当然,在尝试了所有上述解决方案之后,我做到了这一点:p
答案 11 :(得分:2)
保持目标状态!
我正在添加带有Xib的新课程,我开始看到这个问题,并且花了很多时间在这里仔细查看答案,看看是否有任何改变。
碰巧的是,我的工作区中有多个目标,并且经常不得不在它们之间切换。
结果证明,添加新文件将启动Xcode中的重新索引。但是,如果您指向错误的目标,则索引可能毫无意义,并且在拖动Xcode的过程中将无法找到您的类。
简而言之
第1步。
确保设置了正确的目标,这样索引才有意义。
答案 12 :(得分:2)
这是我为解决这个问题所采取的最简单步骤。
答案 13 :(得分:2)
这对我有用:
另一方面,我不确定这是否有帮助,但在执行上述步骤(Xcode首选项>位置)之前,我还删除了派生数据
答案 14 :(得分:2)
产品>清洁(Command - Shift - K)为我修好了!
答案 15 :(得分:1)
在storyBoard中选择ViewController,在右侧面板 /"客户类" /"类"中删除当前值然后重新添加控件类(类型:" SampleViewController" ...),输入。 - >这对我有用
答案 16 :(得分:1)
只需要清理并重新构建项目。
答案 17 :(得分:1)
我遇到了类似的问题,“找不到名为...的类”,而一旦我弄清楚了,原因就很愚蠢。确保您没有将其从项目拖到界面-确保将其拖到班级本身
答案 18 :(得分:1)
我尝试了一切!
确保UIViewController的类名不包含单词“ Test”
错误报告已提交。
答案 19 :(得分:1)
根据我的测试经验,如果删除与Xcode关联的类,而不是再次添加文件,则会出现此问题。
答案 20 :(得分:1)
通常当我遇到这种情况时,我还没有为该课程保存代码。只需跳到代码并点击cmd + s,它就能正确解决问题。
答案 21 :(得分:0)
转到项目文件夹并删除派生数据文件夹
如果您无法找到派生数据,请转到查找程序并转到
~/Library/Developer/XCode/DerivedData/"project"
(将“项目”名称替换为项目名称)
答案 22 :(得分:0)
对我来说,问题在于项目中存在语法错误。 解决错误后,一切正常。 我正在使用xCode 11
答案 23 :(得分:0)
我所做的是将一个按钮作为一个无参数的动作进行连接,将发送方作为UIButton
。结果是-
@IBAction func comma1() {
}
然后我可以放置其余的outlets
或actions
。
答案 24 :(得分:0)
对于我来说,我有一个相同的类名,而xcode无法识别我要针对的是哪个类,因此在选择类名时要小心。
答案 25 :(得分:0)
我知道大多数情况下这只是Xcode的表现,但就我而言,没有建议的操作能够解决问题,并且我认为这是我在尝试重命名项目时犯的一个错误,因此我最终创建了一个新项目并将所有内容导入。
这最终解决了它。
答案 26 :(得分:0)
我会尝试重新制作有问题的.m和.h文件并给它们一个原始名称,而不是像“ViewController”这样的通用名称。尝试更多你希望该文件做的事情,并以View Controller结尾(即“PizzaDecoraterViewController”)
然后选择要连接到这些文件的ViewController。确保选择ViewController,而不仅仅是其中的对象。单击底部的黑色条(具有“First Responder”和“Exit”图标的黑色条)。整个ViewController应该勾勒出蓝色。然后转到Identity Inspector中的Custom Class部分,您应该在第一个字段中看到灰色的“UIViewController”。在该字段中,键入您希望它连接到的.h或.m文件的名称(开始键入PizzaDecorator ...它应该做一些自动完成的事情)。然后按ENTER键。
当您打开“助理编辑器”时,请确保您尝试拖放的文件实际上是正确的文件。
如果你已完成上述所有操作,那么它应该有效。
答案 27 :(得分:0)
删除文件(仅限参考文献)并重新添加文件。
答案 28 :(得分:0)
在我的情况下,有用的东西(它有点怪异,但有效)如下:
尝试添加数据源(例如,像UITableViewDataSource一样扩展到ViewController)。 Xcode将尝试重新加载ViewController。然后我写了一些协议的方法(一开始Xcode没有自动完成方法,但是手动写出来),然后我添加了IBOutlets,最后,我删除了数据源。
示例:
class TestViewController:UIViewController{
// This viewController presents “Could not find any information for class named ViewController”
}
extension TestViewController:UITableViewDataSource{
//Add Some methods of the protocol, Xcode will try to autocomplete and then it's going to reload the class, from then you can add your IBOulets / Actions .. And remove this extension if you don't need it otherwise.
}
答案 29 :(得分:0)
我只是重启Xcode,然后就可以了。
答案 30 :(得分:0)
对我来说,我指定了一个自定义类的视图未能由接口构建器编译。它标记为@IBDesignable
。
删除@IBDesignable
,然后添加我的商店,然后将其标记为@IBDesignable
解决了我的问题。
答案 31 :(得分:0)
试试这个
rm -rf ~/Library/Caches/com.apple.dt.Xcode
defaults delete com.apple.dt.Xcode IDEIndexDisable
defaults write com.apple.dt.Xcode IDEIndexEnable 1
答案 32 :(得分:0)
从取景器Xcode检查是否关闭。
强制退出Xcode并重新启动。
产品>清洁
答案 33 :(得分:0)
就我而言,这是因为Xcode索引进程已停止运行。重新启动我的Mac修复它。
答案 34 :(得分:0)
好的家伙几乎看到了所有最佳答案,但没有人能为我工作。
那么对我有用的是:
Derived Data
地址。
这可以使用以下方法完成: Xcode -> Preferences -> Location Tab -> Derived Data
Close Xcode
现在转到派生数据位置并删除项目中的文件夹。
现在打开Xcode,瞧!
答案 35 :(得分:-1)
上述步骤均不适合我,但我想我可能已经发现了这个问题。至少它对我有用,而且它不是Xcode中的错误。
在助理编辑器中查看包含viewController代码的窗口顶部。右边的第三个选项可能会说"手册"但它应该说"自动"。一旦我改变了这个,问题就解决了!
答案 36 :(得分:-1)
正如我对@ ChrisHarrison的答案所评论的那样,这些东西对我来说不起作用,但删除派生数据就像我在https://stackoverflow.com/a/16182672/1449799
中删除派生数据一样。答案 37 :(得分:-1)
尝试删除项目的派生数据