2014-01-29 112 views
-2
I am Getting error message as follows... 

「2014年1月28日21:17:56.878高於或低於2 [5869:70B] *終止應用程序由於未捕獲的異常 'NSUnknownKeyException',究其原因: '[setValue:forUndefinedKey:]:該類不是關鍵字enterButoonOut的編碼兼容的值。' *第一擲調用堆棧:」不能與錯誤編譯,不知道該怎麼辦

// 
// ViewController.m 
// Higher or Lower 2 
// 
// Created by Michael Goedken on 1/27/14. 
// Copyright (c) 2014 Michael Goedken. All rights reserved. 
// 
/
// Created by Michael Goedken on 1/27/14. 
// Copyright (c) 2014 Michael Goedken. All rights reserved. 
// 

#import "ViewController.h" 

int answer = 0; 
int guess = 0; 
int turn = 0; 
BOOL timeStarted = NO; 


@interface ViewController() 

@end 

@implementation ViewController 


- (IBAction)enterButton:(id)sender { 
    NSString *input = _labelGuess.text; 
    guess = [input intValue]; 
    _previousLabel.text = [NSString stringWithFormat:@"%d",guess]; 
    [email protected]""; 
    turn++; 
    _guessesLabel.text = [NSString stringWithFormat:@"%d",turn]; 

    if (timeStarted == NO){ 
     seconds = 0; 
     timer = [NSTimer scheduledTimerWithTimeInterval:.001 target:self  

selector:@selector(countUp) userInfo:nil repeats:YES]; 
    } 
    timeStarted = YES; 


    if (guess < 1 || guess > 100){ 
     _correct.hidden = YES; 
     _lower.hidden = YES; 
     _higher.hidden = YES; 
     _chooseNumber.hidden = YES; 
     _outOfRange.hidden = NO; 
    } 
    else if (guess > answer) { 
     _lower.hidden = NO; 
     _higher.hidden = YES; 
     _chooseNumber.hidden = YES; 
     _correct.hidden = YES; 
     _outOfRange.hidden = YES; 

    } 
    else if (guess < answer) { 
     _lower.hidden = YES; 
     _higher.hidden = NO; 
     _chooseNumber.hidden = YES; 
     _correct.hidden = YES; 
     _outOfRange.hidden = YES; 

    } 
    else { 
     _correct.hidden = NO; 
     _lower.hidden = YES; 
     _higher.hidden = YES; 
     _chooseNumber.hidden = YES; 
     _outOfRange.hidden = YES; 
     [timer invalidate]; 
     _nextButtonOut.hidden = NO; 
     _enterButtonOut.hidden = YES; 
     _labelGuess.hidden = YES; 

    } 
} 




-(void) countUp { 
    milliSeconds ++; 
    seconds = milliSeconds/1000; 
    minutes = seconds/60; 
    remainingSeconds = seconds % 60; 
    remainingMilliSeconds = milliSeconds % 1000; 
    if (minutes > 0) { 
     _timerLabel.text = [NSString stringWithFormat:@"%2d:%.2d", minutes, remainingSeconds]; 
    } 
    else { 
     _timerLabel.text = [NSString stringWithFormat:@"%2d:%.2d.%.3d", minutes,   

remainingSeconds, remainingMilliSeconds]; 
    } 
} 




- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [_labelGuess resignFirstResponder]; 

} 




- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    _labelGuess.keyboardType = UIKeyboardTypeNumberPad; 
    _higher.hidden = YES; 
    _lower.hidden = YES; 
    _correct.hidden = YES; 
    _outOfRange.hidden = YES; 
    answer = arc4random() % 100 + 1; 
    _nextButtonOut.hidden = YES; 
    NSLog(@"Answer %i", answer); 
    // Do any additional setup after loading the view, typically from a nib. 
} 






- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 


- (IBAction)nextButton:(id)sender { 
    _correct.hidden = YES; 
    _lower.hidden = YES; 
    _higher.hidden = YES; 
    _chooseNumber.hidden = YES;enter code here 
    _outOfRange.hidden = YES; 
    _labelGuess.hidden = YES; 
    _guessesLabel.hidden = YES; 
    _previousLabel.hidden = YES; 
    _timerLabel.hidden = YES; 
    _nextButtonOut.hidden = YES; 
    _enterButtonOut.hidden = YES; 
    _background.hidden = YES; 
    _guesses.hidden = YES; 
    _previous.hidden = YES; 

} 
@end 










// 
// ViewController.h 
// Higher or Lower 2 
// 
// Created by Michael Goedken on 1/27/14. 
// Copyright (c) 2014 Michael Goedken. All rights reserved. 
// 

#import <UIKit/UIKit.h> 


@interface ViewController : UIViewController { 
    NSTimer *timer; 
    int seconds; 
    int minutes; 
    int remainingSeconds; 
    int milliSeconds; 
    int remainingMilliSeconds; 

} 
@property (weak, nonatomic) IBOutlet UIImageView *chooseNumber; 
@property (weak, nonatomic) IBOutlet UITextField *labelGuess; 
@property (weak, nonatomic) IBOutlet UIImageView *higher; 
@property (weak, nonatomic) IBOutlet UIImageView *lower; 
@property (weak, nonatomic) IBOutlet UIImageView *correct; 
@property (weak, nonatomic) IBOutlet UIImageView *outOfRange; 
@property (weak, nonatomic) IBOutlet UILabel *previousLabel; 
@property (weak, nonatomic) IBOutlet UILabel *timerLabel; 
@property (weak, nonatomic) IBOutlet UIButton *nextButtonOut; 
@property (weak, nonatomic) IBOutlet UIButton *enterButtonOut; 
@property (weak, nonatomic) IBOutlet UIImageView *background; 
@property (weak, nonatomic) IBOutlet UILabel *previous; 
@property (weak, nonatomic) IBOutlet UILabel *guessesLabel; 
@property (weak, nonatomic) IBOutlet UILabel *guesses; 


- (IBAction)nextButton:(id)sender; 
- (IBAction)enterButton:(id)sender; 




@end 
+0

'enterButoonOut' - 你拼錯 「按鈕」,即這應該是'enterButtonOut'? – dasblinkenlight

+0

不知道爲什麼它說我把它們全都弄壞了。 – MikeG

+0

「對於enterButoonOut鍵」 - 這就是說你在某處(在故事板或XIB文件中)拼錯了「enterButtonOut」。 –

回答

0

我通常會得到這樣的錯誤消息時的幾件事情之一發生。

1)我拼錯了segue.identifier的值,因爲我即將跳到另一個模塊(不確定這適用於您的情況,但這是它總是讓我)。 2)如果更改故事板,然後刪除代碼中的值,連接不會在故事板中消除,並且必須手動進入並從故事板中刪除鏈接。要檢查,只需在故事板中的每個元素上單擊鼠標右鍵(或按Ctrl鍵)並記下連接。

我的猜測是,如果你看一下在故事板那個按鈕,您會看到「enterButoonOut」,而不是「enterButtonOut」的

希望這有助於!

格倫

+0

故事板中的所有內容都拼寫正確,但是在更改後我確實得到了此錯誤,但我不知道如何解決此問題。 – MikeG

+0

試試這個:將按鈕所在的屏幕調出故事板。點擊選擇按鈕,直到只有按鈕被選中。一旦選定,則可以使用按鈕或按鈕(取決於您的鼠標)。將出現一個菜單,顯示該對象的所有鏈接。我的猜測是列表中會有一個額外的鏈接,其中包含拼寫錯誤的值。在鏈接旁邊,如果您將鼠標懸停在鏈接上,將出現「X」或「*」。點擊該值基本上刪除鏈接。讓我知道這是怎麼回事,因爲我認爲這是你的問題。 –

+0

非常感謝你的工作! – MikeG

0

您有拼寫錯誤enterButoonOut,它必須enterButtonOut按你的聲明:

@property (weak, nonatomic) IBOutlet UIButton *enterButtonOut; 
相關問題