“找不到名为ViewController的类的任何信息”
自从我开始使用Xcode(4.6.3)以来,这个bug已经让我疯狂了。 每当我尝试链接一个Storyboard项目到我的代码,我得到错误“找不到任何信息的类名为ViewController”。 这也发生在自定义类中。 我已经尝试删除委托数据,我已经尝试删除和重新添加的类,我已经尝试重新启动Xcode,我已经尝试重新安装Xcode。 我无法按住Ctrl拖动来创build我的任何项目中的连接,无论什么类。 全新的模板应用程序也会出现同样的问题。 如果我手动键入代码,然后按住Ctrl键,我可以build立一个工作连接,但我不能自动添加它。 目前在互联网上找不到的东西已经有所帮助。 任何指针?
为我解决这个问题实际上是从项目中删除类。
脚步:
- 在项目文件浏览器(左侧面板)中find类,然后右键单击 – >删除
- 删除参考 (不要移动到垃圾,因为你会失去class级的好)
- 右键单击包含类的文件夹 – >将文件添加到…
- find刚在文件系统中删除的类
这似乎迫使Xcode将课程链接回故事板。
注意:对于我来说,以下是不起作用的:
- closuresXcode
- 清理项目
- 从故事板中删除类名并重新input
我认为这是苹果方面的一个错误
如果有人仍然对此感到沮丧,有一个窍门可以使事情顺利进行。
我所做的是手动input到我的课,例如: @IBOutlet weak var someView: UIView!
,并从代码拖到IB或故事板中的视图。 在此之后,我可以从IB / Storyboard拖到我的class级进行联系,助理编辑在“自动”等中识别class级。
每次工作。
刚刚重新启动您的Xcode …这对我的作品!
对我来说,将它们从您的目标成员中删除右列,并再次添加他们的伎俩
某些时候,Xcode的确是因为VC没有引用类文件。 这个简单的解决scheme是:手动写下面给出的属性。
class YourClassName {
@IBOutlet weak var YourTableName: UITableView!
}
这将在@IBOutlet之前创build一个空的链接标志,在助理编辑器中打开您的项目,然后单击链接标志 并拖到你想连接的视图(我已经连接到TableView)。 这就是它。 享受快乐编码!
下面的步骤为我工作希望也适用于你
1-closuresXcode后,您需要重新打开项目。
2-等待索引项目文件
3-检查它是否工作
4-如果仍然没有工作,按照第5步,如果不满意你:)
5-清理并build立您的项目目标
我试了一切,它没有工作,所以对我来说,工作是:
- 清理生成文件夹和项目。
- 打开项目(窗口 – >项目)
- 在列表中find您的项目并删除派生数据
- closuresXCode
- 重新启动计算机(不select重新打开窗口)
- 运行XCode
- 工作!
我的所有视图控制器都没有被识别,所以删除所有文件并重新添加不是一个选项,因为这是一个大项目。
到目前为止,我必须结合几个答案:
- 从故事板中删除自定义类的名称。
(点击故事板视图控制器左上方的黄色button – >进入身份检查器(选项+命令+ 3) – >删除顶部的自定义类名称)
- 删除对视图控制器文件的引用。
(右键单击文件 – >删除 – >删除引用)
- 将视图控制器文件添加回项目。
(右键单击文件所在的文件夹 – >“添加文件到[项目]”)
- 将自定义类名添加回故事板。
如果人们尝试上述方法,事情仍然没有起作用,那么奇怪的技巧就是在大量的空白处添加出口。 如果在你添加的行的上面或下面没有其他行,它就可以工作。 奇怪,但它的工作!
对我来说有效的是,不是将连接从button拖到代码上,而是:
- 点击所需的故事板项目。
- 打开连接检查器(右侧面板)
- 从+圆圈拖动到代码区域。 像这样:
以这种方式链接我的代码之后,它从此后正常工作。
我只是在2017年4月与XCode 8有这个问题
通过代码简单地创build一个sockets,并编译修复它。 例如:
@IBOutlet weak var containerViewHeight: NSLayoutConstraint!
你必须爱XCode …
我尝试了所有这些答案,对我来说问题是与Xcode不能索引文件。 我通过简单地退出Xcode并重新打开项目来解决这个问题。 当然,我尝试了所有的上述解决scheme后,做到了这一点:
产品>清洁(Command – Shift – K)为我修好了!
这是我为解决这个问题所做的最简单的一步。
- 我清理这个项目
- 在视图控制器中拖动一个新button。
- build立这个项目。
- 将新拖动的button连接到类(出口或动作)。
- 那么瞧! 现在可以连接其他网点了!
在storyBoard中selectViewController,删除右侧面板 /“Customer class”/“class”中的当前值,然后重新添加控件类(types:“SampleViewController”…),进入。 – >那为我工作
根据我的testing经验,如果您删除了一个在Xcode中关联的类,而不是再次添加文件,则会发生此问题。
通常当这发生在我身上时,我还没有保存这个类的代码。 只是跳到代码并打cmd + s,它往往解决了问题的正确方法。
我会尝试重新制作有问题的.m和.h文件,并给它们一个原始的名称,而不是像“ViewController”那样的通用名称。 尝试更多的东西,你想要什么文件的行,结束在视图控制器(即“PizzaDecoraterViewController”)
然后select你想连接到这些文件的ViewController。 确保你select了ViewController,而不仅仅是一个对象。 点击底部的黑条(具有“First Responder”和“Exit”图标的那个)。 整个ViewController应该是蓝色的。 然后转到Identity Inspector中的Custom Class部分,在第一个字段中应该看到一个灰色的“UIViewController”。 在该字段中,input你希望连接到的.h或.m文件的名称(开始inputPizzaDecorator …,它应该做一些自动完成的事情)。 然后按ENTER键。
当您打开助手编辑器时,请确保您正在尝试拖放的文件实际上是正确的文件。
如果你做了上面所说的一切,那么它应该工作。
删除文件(只有引用)并再次添加文件。
那么在我的情况下,工作的东西(这是一个怪异的怪异,但工作)是以下几点:
尝试添加一个数据源(例如,像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. }
对我来说,我指定了一个自定义类的视图无法被界面构build器编译。 它被标记@IBDesignable
。
删除@IBDesignable
,然后添加我的网点,然后标记为@IBDesignable
解决了我的情况下的问题。
试试这个吧
rm -rf ~/Library/Caches/com.apple.dt.Xcode defaults delete com.apple.dt.Xcode IDEIndexDisable defaults write com.apple.dt.Xcode IDEIndexEnable 1
从finder xcode检查是否closures。 强制退出xcode并重新启动。 产品>清洁
在我的情况下,这是因为XCode索引进程已经停止运行。 重新启动mac修复它。
好吧,大家看到几乎所有的最佳答案,没有为我工作。
所以对我来说有以下的作用:
- 复制XCode项目的
Derived Data
地址。 这可以使用以下方法完成:
Xcode -> Preferences -> Location Tab -> Derived Data
-
Close Xcode
-
现在转到派生的数据位置,并在那里删除项目的文件夹。
现在打开Xcode和Voila!
对我来说,以下工作:
-
做一个“干净的”和一个“干净的生成文件夹”(按“选项”在产品菜单上获得“干净的生成文件夹”命令
-
停止XCode
-
在terminal中,转到派生的数据文件夹:
(/用户//库/开发商/ Xcode中/ DerivedData)
删除您的项目的派生数据目录。
-
在空中挥舞着死鸡
-
启动XCode
正如我评论@ ChrisHarrison的答案,这些东西不适合我,但删除导出的数据,因为我得到它的工作删除派生数据在https://stackoverflow.com/a/16182672/1449799
试着删除项目的派生数据
- 大写的第一个字母在NSString中
- 将UIButton上的文本和图像与imageEdgeInsets和titleEdgeInsetsalignment
- 文件是为了存档而build立的,而不是被链接的架构(i386)
- iOS的UITextView或UILabel与可点击链接的行动
- 原生iOS应用程序:我在“设置”,“基本”下面,在Facebook的开发人员“iPhone App Store ID”中放入了什么?
- “找不到开发人员磁盘映像”
- iPhone GPS在后台暂停后不会恢复
- 用ViewViewController提供ViewController
- 在Xcode 6下通过SSH运行xcodebuildtesting时超时