为啥新类不会出现在 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.hSpecialViewController.m 可能看起来是 C 文件和 C 头文件。

我试过了,右击 SpecialViewController.h 然后 Show File Inspector

然后将 TypeC-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 的下拉列表中?

为啥ios build即使成功也不会在试飞中显示

为啥flutter build ios --obfuscate --split-debug-info= 失败并出现警告,但flutter build ios 有效?

在 ng build --prod 之后,为啥我在 main.js:1 和 polyfills.js:1 中出现错误,而不是在我创建的组件中,如何撤消这个?