所以我正在玩一个卡片游戏,我有一个UITabBarController,我有两个标签。现在第一个选项卡工作得很好但是当我点击另一个选项卡时,我收到此错误 “线程1:信号SIGABRT”并且在调试器面板上我有“argc =(int 1)”和argv =(char **)0xbffff38c。我正在为这个项目使用故事板。
下面是我的视图控制器的选项卡,它会抛出上面的错误。 如果您需要更多代码,请告诉我,但我认为这可能是我的View的问题,因为它甚至无法加载。
#import "GameResultsViewController.h"
#import "GameResult.h"
@interface GameResultsViewController ()
@property (weak, nonatomic) IBOutlet UITextView *textResults;
@end
@implementation GameResultsViewController
- (void) updateUI
{
NSString* displayText = @"";
for (GameResult* gameResult in [GameResult allGameResults])
{
displayText = [displayText stringByAppendingFormat:@"Score: %d %@ %0g\n",gameResult.score, gameResult.end, round(gameResult.duration)];
}
self.textResults.text = displayText;
}
- (void) setup
{
}
- (void) awakeFromNib
{
[self setup];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
[self setup];
return self;
}
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self updateUI];
}
@end
这也是在调试器窗口中
2013-07-25 20:38:46.360 Matchismo[1119:c07] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<GameResultsViewController 0x758cce0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key display.'
*** First throw call stack:
(0x1c9b012 0x10d8e7e 0x1d23fb1 0xb84e41 0xb065f8 0xb060e7 0xb30b58 0x23a019 0x10ec663 0x1c9645a 0x238b1c 0xfd7e7 0xfddc8 0xfdff8 0xfe232 0x11f8c9 0x11f704 0x11dbda 0x11da5c 0x11f647 0x10ec705 0x202c0 0x20258 0x242ff4 0x10ec705 0x202c0 0x20258 0xe1021 0xe157f 0xe1056 0x246af9 0x10ec705 0x202c0 0x20258 0xe1021 0xe157f 0xe06e8 0x4fcef 0x4ff02 0x2dd4a 0x1f698 0x1bf6df9 0x1bf6ad0 0x1c10bf5 0x1c10962 0x1c41bb6 0x1c40f44 0x1c40e1b 0x1bf57e3 0x1bf5668 0x1cffc 0x297d 0x28a5)
libc++abi.dylib: terminate called throwing an exception
(lldb)
答案 0 :(得分:0)
控制台日志的这一部分会告诉您发生了什么:
[<GameResultsViewController 0x758cce0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key display.'
***首先抛出调用堆栈:
在您的应用中的某个时刻,某个对象正在尝试在GameResultsViewController
类的对象上设置'display'属性 - 但该类没有此属性。
如果您重命名了一个属性,它可能是Interface Builder中的一个迷路插件 - 旧的连接仍然存在于Interface Builder中,因此当NIB加载时,运行时尝试连接插座并因此错误而失败。或者你有一行代码,你有gameResultsViewController.display = ...
,显示属性不正确(或者你没有添加到GameResultsViewController
类)。
My 5c位于Interface Builder中的重命名属性中。查看ViewController上的插座视图,看看是否有灰色的东西 - 通常表示属性破损。这里的示例我将按钮属性重命名为myButton - 因此您可以看到未连接的myButton属性以及按钮属性上的警告。