我从Xib加载视图时遇到键值编码兼容错误。
当然,过去我已经多次出错,并且知道这意味着插座连接无效或丢失。但是,在这种情况下,我根本看不到任何错误,已经删除并重新连接了所有内容,但错误不会消失。

在这里我们可以看到文件的所有者为TCUsageAlertView类型,并且有三个出口:






在这里,他们连接到所有者



我们可以看到TCUsageAlertView确实是一个UIView:

@interface TCUsageAlertView : UIView
{
….


这是加载视图的位置:

TCUsageAlertView *dialog = (TCUsageAlertView *)[[[NSBundle mainBundle] loadNibNamed:@"UsageAlertDialog" owner:self options:nil] objectAtIndex:0];


xib中只有一个视图,因此objectAtIndex:0很好。

如果删除Connections Inspector中的插座,则将加载该类,如果我放回它们,则它将失败。问题是什么?

最佳答案

文件所有者是您传递给loadNibNamed的对象,在这种情况下,它是任何正在加载视图的类的实例,而不是TCUsageAlertView的实例。

外层视图应更改为类TCUsageAlertView,然后应从该视图建立到子视图的连接。

07-28 09:43