0

所以我正在制作一个纸牌游戏,其中有一个 UITabBarController 和两个选项卡。现在第一个选项卡工作得很好,但是当我单击另一个选项卡时,我收到此错误“线程 1:信号 SIGABRT”,在调试器面板上我有“argc = (int 1)”和 argv = (char **) 0xbffff38c。我正在为这个项目使用故事板。

下面是我的选项卡的视图控制器,它向我抛出了上面的错误。如果您需要更多代码,请告诉我,但我认为这可能是我的视图有问题,因为它甚至不会加载。

#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) 
4

1 回答 1

0

控制台日志的这一部分告诉你发生了什么:

[<GameResultsViewController 0x758cce0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key display.'

*** 首先抛出调用堆栈:

在您的应用程序中的某个时刻,一个对象试图在该类的一个对象上设置“显示”属性GameResultsViewController- 但该类没有此属性。

如果您重命名了一个属性,它可能是 Interface Builder 中的一个杂散插座 - 旧连接仍然存在于 Interface Builder 中,因此当 NIB 加载时,运行时会尝试连接该插座并因此错误而失败。或者您在某处有一行代码,gameResultsViewController.display = ... 并且显示属性不正确(名称不正确,或者您尚未添加到GameResultsViewController类中)。

我的 5c 位于 Interface Builder 中的重命名属性上。查看 ViewController 上的出口视图,看看是否有任何变灰的东西 - 通常表示属性损坏。此处的示例我将 button 属性重命名为 myButton - 所以您会看到未连接的 myButton 属性,以及 button 属性上的警告。

破碎的奥特莱斯

于 2013-07-26T00:49:12.450 回答