我从 xib 加载 View 时遇到键值编码兼容错误。 当然,我过去多次遇到此错误,并且知道这意味着 socket 连接无效或丢失。然而,在这种情况下我根本看不出有什么问题,并且已删除并重新连接所有内容,但错误不会消失。
在这里我们可以看到文件的所有者是 TCUsageAlertView 类型,并且有三个导出:
在这里他们连接到所有者
我们可以看到 TCUsageAlertView 确实是一个 UIView:
@interface TCUsageAlertView : UIView
{
….
这是加载 View 的地方:
TCUsageAlertView *dialog = (TCUsageAlertView *)[[[NSBundle mainBundle] loadNibNamed:@"UsageAlertDialog" owner:self options:nil] objectAtIndex:0];
xib 中只有一个 View ,因此 objectAtIndex:0 就可以了。
如果我删除连接检查器中的 socket ,则该类将加载,如果我将它们放回去,则该类将失败。有什么问题吗?
最佳答案
文件所有者是您传递给 loadNibNamed 的任何内容...在这种情况下,它是加载 View 的任何类的实例,而不是 TCUsageAlertView 的实例。
外层 View 应更改为 TCUsageAlertView 类,然后应从该 View 到 subview 建立连接。
关于ios - class is not-key value coding compliant error 但 Storyboard 中的一切都是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22364055/