接口构建器问题:连接IBOUTLET时,获得“此类不是密钥的密钥值编码符合键值”
-
03-10-2019 - |
题
这是我要做的:
1)创建新的UiviewController子类,用笔尖勾选接口构建器
2)在标题中:
@interface QuizMainViewController : UIViewController
{
UILabel* aLabel;
}
@property (nonatomic, retain) IBOutlet UILabel* aLabel;
@end
3)在.m中
#import "QuizMainViewController.h"
@implementation QuizMainViewController
@synthesize aLabel;
- (void)dealloc
{
[aLabel release];
[super dealloc];
}
@end
4)打开接口构建器中的笔尖,将新的Uilabel拖到视图中。
我在这里测试程序,运行良好。
5)右键单击文件的所有者,将“ Alabel”从插座连接到Uilabel。
我在这里跑步,它崩溃了。来自日志的消息:
***终止由于未被发现的例外“ nsunknownekyexception”,原因是:'[setValue:forundefinedkey:]:此类不适合密钥alabel符合密钥值编码。”
解决方案
我解决了问题!
该视图是从选项卡栏控制器加载的,我将笔尖名称设置为“ quizmainviewController”,但我没有将视图的类标识设置为“ quizmainviewController”,它被卡在“ uiviewwiewController”的默认值上。 。
加载视图时,它认为它是UiviewController的实例,因此它不知道Alabel属性。
故事的寓意:使用标签栏控制器时,将NIB名称和具有自己视图控制器的NIB的类同学设置。
其他提示
尝试:
@interface QuizMainViewController : UIViewController
{
IBOutlet UILabel* aLabel;
}
据说,您不再需要在Objective-C 2.0中执行此操作,但是我遇到了iPhone上的问题。
编辑:
您可以尝试更改
@property (nonatomic, retain) IBOutlet UILabel* aLabel;
到
@property (nonatomic, retain) IBOutlet UILabel *aLabel;
但是不要认为这应该很重要。编译器通常可以使它困惑。
Edit01:
在IB中,请确保将视图控制器的类别设置为 QuizManViewController
不只是 UIView
.
不隶属于 StackOverflow