2013-08-04 3 views
0

Я совершенно новичок в этом программировании Objective-C. Недавно я сделал очень простое приложение, и я не мог найти, почему приложение не работает, когда я пытаюсь определить элементы пользовательского интерфейса во втором представлении контроллера. Я продолжаю получать сообщение об ошибке:SIGABRT - этот класс не является ключевым значением, совместимым с кодом для ключа

«2013-08-04 02: 38: 45,488 Cheerup [43957: c07] * Нагрузочное приложение из-за неперехваченное исключение 'NSUnknownKeyException', причина:«[SetValue: forUndefinedKey]: этот класс не является ключевым значением, совместимым с кодировкой для ключевого приветствияMsg. ' * Первый стек бросить вызов: (0x1c91012 0x10cee7e 0x1d19fb1 0xb7ae41 0xafc5f8 0xafc0e7 0xb26b58 0x230019 0x10e2663 0x1c8c45a 0x22eb1c 0xf37e7 0xf3dc8 0xf3ff8 0xf4232 0xffc25 0x2ff3a3 0xfcee3 0xfd167 0xfd1a7 0x4690a2 0x45ab99 0x45ac14 0x10e2705 0x162c0 0x16258 0xd7021 0xd757f 0xd66e8 0x45cef 0x45f02 0x23d4a 0x15698 0x1becdf9 0x1becad0 0x1c06bf5 0x1c06962 0x1c37bb6 0x1c36f44 0x1c36e1b 0x1beb7e3 0x1beb668 0x12ffc 0x282d 0x2755) LibC++ abi.dylib: оконечный называется бросать исключение (lldb) "

есть ли какие-то проблемы с Appdeligate?

Ниже приведены два ViewController шахты:

MenuViewController.h

#import <UIKit/UIKit.h> 

@interface MenuViewController : UIViewController{ 

} 

@property IBOutlet UIButton *Botton1; 
@property IBOutlet UIButton *Botton2; 

@end 

MenuViewController.m

#import "MenuViewController.h" 

@interface MenuViewController() 

@end 

@implementation MenuViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
} 

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

@end 

AfterMenuViewController.h

#import <UIKit/UIKit.h> 


@interface AfterMenuViewController : UIViewController{ 

    IBOutlet UILabel *WelcomeMsg; 
    IBOutlet UIButton *Back; 
} 


@end 

AfterMenuViewController.m

#import "AfterMenuViewController.h" 


@interface AfterMenuViewController() 

@end 

@implementation AfterMenuViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 


} 

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


@end 

Любые мысли? THanks Kamyar

ответ

1

Ваша ошибка говорит welcomeMsg и ваш код говорит WelcomeMsg. Именование чувствительно к регистру. Похоже, вы могли переименовать розетку после ее подключения. Попробуйте удалить соединение и снова подключить его.

Обратите внимание, что по соглашению переменные и свойства экземпляра начинаются с строчных букв, а имена классов начинаются с букв верхнего регистра. Таким образом, welcomeMsg верен.

0

Я думаю, что есть проблемы с IBOutlets. Попробуйте этот

#import <UIKit/UIKit.h> 


@interface AfterMenuViewController : UIViewController{ 

    // comment this 
    // IBOutlet UILabel *WelcomeMsg; 
    // IBOutlet UIButton *Back; 
} 

@property (weak, nonatomic) IBOutlet UILabel *WelcomeMsg; 
@property (weak, nonatomic) IBOutlet UIButton *Back; 

@end

Смежные вопросы

 Смежные вопросы