为啥新类不会出现在 Interface Builder 的 Identity Inspector/Custom Class 中?
Posted
技术标签:
【中文标题】为啥新类不会出现在 Interface Builder 的 Identity Inspector/Custom Class 中?【英文标题】:Why won't new class show up in Identity Inspector/Custom Class in Interface Builder?为什么新类不会出现在 Interface Builder 的 Identity Inspector/Custom Class 中? 【发布时间】:2012-12-10 21:29:02 【问题描述】:我在 Xcode 4.5 中遇到重复问题,想寻求帮助/建议。
一直在创建一个新类,BIDSwitchViewController,它是 UIViewController 的子类。当我去 Identity Inspector 布局 .xib 文件时,我当然想将它所属的类更改为 BIDSwitchViewController,以便我可以布局我的对象并建立我的连接。
但是 BIDSwitchViewController 没有显示在 Identity Inspector 中自定义类的下拉列表中。因此,我将“BIDSwitchViewController”硬编码到文本框中,但这并没有奏效。
我做错了什么,我能做些什么来解决这个问题?
提前致谢。
【问题讨论】:
.h、.m 和 .xib 文件是否都设置为包含在同一个 Xcode 目标中(即在构建阶段中)? 如何检查?在 Compile Sources 中有五个 .m 文件,在 Copy Bundle Resources 中有七个项目。不是我在编译源中创建的所有文件;我需要改变吗? 如果您需要将 .m 文件构建到目标中,则应将它们添加到编译阶段。 发现问题:当我进入身份检查器/自定义类时,我选择了视图而不是文件所有者。一旦我进入 File's Owner,一切正常。 【参考方案1】:我解决这个问题的方法是重新启动我的 Xcode!然后一切正常。试试看吧!
【讨论】:
这对我不起作用。我在 4.3.3 和 4.6.2 中尝试过在我开发的早于 4.2 的项目中,现在失去了自定义类!机器设置??当我创建一个新项目时,直到我将工具栏按钮或项目添加到工具栏之前它都很好,然后无论如何它都消失了! @sunkehappy:它对我有用,并且为我节省了很多白发。非常感谢!【参考方案2】:如果重启不能解决问题...
-
点击其他文件
然后返回您的
.Storyboard
或.XIB
。
...或者尝试在新标签中打开您的.Storyboard
或.XIB
。基本上你只想强制 IB
重新加载和重新渲染。
【讨论】:
【参考方案3】:经过两天的挫折和删除项目然后删除 Xcode 本身,直到我记得我的 viewController 的继承,我没有找到任何解决方案,它是一个用于表格故事板视图的 viewController,但是它确实继承自 UIViewController 而不是 UITableViewController 。就在我纠正时,它出现了。
只需确保您的视图与相同的故事板视图具有正确的继承类。
class AddItemViewController: UITableViewController
【讨论】:
卫生署!两年后的 Xcode 11.6 仍然如此。如果你通过添加一个导航控制器来开始你的故事板(就像我做的那样)Xcode 会自动添加一个表格视图作为视图控制器。您的自定义类必须继承自 UITableViewController。【参考方案4】:是Xcode的问题,你应该在选择table view和table view controller(在你的实践中是File's owner)之间切换,新添加的文件名会在下拉列表中弹出。 我已经尝试过了,它已经完成了。
【讨论】:
【参考方案5】:在选择类之前,请确保您已在占位符中选择了“文件所有者”。
【讨论】:
【参考方案6】:我也一直在努力解决同样的问题,正如 Chanson Yan 所说,单击表格视图或任何视图,然后单击主视图控制器(文件所有者),然后再次检查下拉菜单,它应该会出现。
【讨论】:
【参考方案7】:SpecialViewController.h 和 SpecialViewController.m 可能看起来是 C 文件和 C 头文件。
我试过了,右击 SpecialViewController.h 然后 Show File Inspector。
然后将 Type 从 C-source 切换到 Objective-C source strong> ,那么它对我有用。
【讨论】:
【参考方案8】:如果有问题的自定义类不是您要关联的类类型的子类,它不会自动填充到 Identity Inspector 中。也就是说,对于视图控制器,自定义类应该是 UIViewController。对于表格视图单元格,它应该是 UITableViewCell 的子类。
【讨论】:
以上是关于为啥新类不会出现在 Interface Builder 的 Identity Inspector/Custom Class 中?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Interface Builder 不会改变我的 ViewController 类型?
为啥在 Weka 中使用 libsvm 时会出现“NoClassDefFoundError:libsvm/svm_print_interface”错误?
为啥我的自定义类没有出现在 Interface Builder 的下拉列表中?
为啥flutter build ios --obfuscate --split-debug-info= 失败并出现警告,但flutter build ios 有效?
在 ng build --prod 之后,为啥我在 main.js:1 和 polyfills.js:1 中出现错误,而不是在我创建的组件中,如何撤消这个?