我从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,然后应从该视图建立到子视图的连接。