接口构建器问题:连接IBOUTLET时,获得“此类不是密钥的密钥值编码符合键值”

StackOverflow https://stackoverflow.com/questions/2772771

这是我要做的:

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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top