当我尝试构建并运行我的应用程序时,它崩溃了,我在日志中得到了这个:
reason: '[<LoadingViewController 0x6b2c5a0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key aproposViewController.'
奇怪的是aproposViewController
中没有使用LoadingViewController
,它只是我应用中的另一个视图控制器。请提前帮助:)
修改
appdelegate.h:
@class LoadingViewController;
@interface TopStationAppDelegate : NSObject <UIApplicationDelegate,CLLocationManagerDelegate> {
UIWindow *window;
LoadingViewController *loadingView;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet LoadingViewController *loadingView;
@end
appdelegate.m :
#import "LoadingViewController.h"
@implementation TopStationAppDelegate
@synthesize window;
@synthesize loadingView;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[window addSubview:loadingView.view];
[window makeKeyAndVisible];
return YES;
}
- (void)dealloc {
[loadingView release];
[window release];
[super dealloc];
}
@end
没有aproposViwController的声明,即使在主视图的IB中也是如此!
编辑2
这里有两个主屏幕截图,主界面和loadingView中的loadingView:
答案 0 :(得分:28)
无法确定您的情况是否正在发生这种情况,但如果您在笔尖中设置了连接以将对象分配给另一个对象的属性,则通常会看到此消息,但属性为在目标对象上丢失。
所以你可能在一个点上有一个名为aproposViewController的IBOutlet,在一个点上连接了另一个视图控制器,然后删除了IBOutlet但忽略了删除笔尖中的连接。
所以当加载nib时,它会尝试设置属性,但却发现它不存在,因此:
reason: '[<LoadingViewController 0x6b2c5a0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key aproposViewController.'
答案 1 :(得分:4)
我有这个问题,因为我有一个:
vc = [[someVC alloc] initWithNibName:@"oldNibFileNameButCachedSomewhereWithOldRefToPropertyIn" bundle:nil];
答案 2 :(得分:4)
如果您从XIB中删除了与IBOutlet的连接,但仍然会发生
然后从模拟器中删除应用程序并再次运行。
答案 3 :(得分:2)
我在我的应用程序中发现了同样的错误,并且在一段时间后我找到了解决方案。
实际上我已经为一个按钮提供了2个动作事件。 在问题结束后,我删除了分配给按钮的额外连接。
这在我的场景中有效。我希望它对其他人有所帮助..