2012-02-29 3 views
2

Я работал над своим приложением iOS прошлой ночью, когда я пошел проверять его, и он разбился при запуске. Я даже не работал над наконечником, который вызывает крушение. В любом случае, вот код ошибки:Подключения IB в Xcode crashing

2/29/12 10:32:05.291 AM Safe Flight: *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0xdd496f0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key Airport1.' 
*** First throw call stack: 
(0x2873052 0x33add0a 0x2872f11 0x1ae2032 0x1a53f7b 0x1a53eeb 0x1a6ed60 0x136191a 0x2874e1a 0x27de821 0x136046e 0x1362010 0x114214a 0x1142461 0x11417c0 0x1150743 0x11511f8 0x1144aa9 0x37b7fa9 0x28471c5 0x27ac022 0x27aa90a 0x27a9db4 0x27a9ccb 0x11412a7 0x1142a9b 0x3710 0x2f35) 

Airport1 это просто ярлык с IBOutlet правильно подключен к нему. Кроме того, если я удалю соединение, ошибка будет только со следующего элемента, который имеет соединение.

Кроме того, мой класс FileOwners правильно установлен на соответствующий viewController.

// MasterViewController.h 

#import <UIKit/UIKit.h> 
#import "MobclixAds.h" 

@class DataViewController; 
@class EditViewController; 
@class SearchViewController; 



@interface MasterViewController : UIViewController{ 

    UILabel *Airport1; 
    UILabel *Airport2; 
    UILabel *Airport3; 
    UILabel *Airport4; 
    UILabel *Airport5; 
    UILabel *Airport6; 
    UILabel *Airport7; 
    UILabel *Airport8; 
    UILabel *Airport9; 
    UIButton *Airport1B; 
    UIButton *Airport2B; 
    UIButton *Airport3B; 
    UIButton *Airport4B; 
    UIButton *Airport5B; 
    UIButton *Airport6B; 
    UIButton *Airport7B; 
    UIButton *Airport8B; 
    UIButton *Airport9B; 

    MobclixAdView* adView; 
} 

@property (strong, nonatomic) DataViewController *dataViewController; 
@property (strong, nonatomic) EditViewController *editViewController; 
@property (strong, nonatomic) SearchViewController *searchViewController; 


@property (nonatomic, retain) IBOutlet UILabel *Airport1; 
@property (nonatomic, retain) IBOutlet UILabel *Airport2; 
@property (nonatomic, retain) IBOutlet UILabel *Airport3; 
@property (nonatomic, retain) IBOutlet UILabel *Airport4; 
@property (nonatomic, retain) IBOutlet UILabel *Airport5; 
@property (nonatomic, retain) IBOutlet UILabel *Airport6; 
@property (nonatomic, retain) IBOutlet UILabel *Airport7; 
@property (nonatomic, retain) IBOutlet UILabel *Airport8; 
@property (nonatomic, retain) IBOutlet UILabel *Airport9; 
@property (nonatomic, retain) IBOutlet UIButton *Airport1B; 
@property (nonatomic, retain) IBOutlet UIButton *Airport2B; 
@property (nonatomic, retain) IBOutlet UIButton *Airport3B; 
@property (nonatomic, retain) IBOutlet UIButton *Airport4B; 
@property (nonatomic, retain) IBOutlet UIButton *Airport5B; 
@property (nonatomic, retain) IBOutlet UIButton *Airport6B; 
@property (nonatomic, retain) IBOutlet UIButton *Airport7B; 
@property (nonatomic, retain) IBOutlet UIButton *Airport8B; 
@property (nonatomic, retain) IBOutlet UIButton *Airport9B; 

@property(nonatomic,retain) IBOutlet MobclixAdView* adView; 


@end 

и

// MasterViewController.m 


#import "MasterViewController.h" 

#import "DataViewController.h" 
#import "EditViewController.h" 
#import "SearchViewController.h" 



@implementation MasterViewController 

@synthesize dataViewController = _dataViewController; 
@synthesize editViewController = _editViewController; 
@synthesize searchViewController = _searchViewController; 



@synthesize Airport1, Airport2, Airport3, Airport4, Airport5, Airport6, Airport7, Airport8, Airport9; 
@synthesize Airport1B, Airport2B, Airport3B, Airport4B, Airport5B, Airport6B, Airport7B, Airport8B, Airport9B; 
@synthesize adView; 


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     self.title = @"Safe Flight"; 
     self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; 
    } 
    return self; 
} 

Так моя проблема с моим кодом? или с самим Xcode ?? Я перезапущен Xcode и симулятор и даже сделал «чистую» построить (это звучало, как это помогло бы ...)

Спасибо, Andrew

EDIT Это мой AppDelegate и я устанавливаю правильный xib к окну

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [Mobclix start]; 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 

    MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil]; 
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController]; 
    self.window.rootViewController = self.navigationController; 
    [self.window makeKeyAndVisible]; 
    return YES; 

} 

ПРОБЛЕМА РЕШАЕТ !!!

Я не могу ответить на свой вопрос из-за какого-то глупого фильтра спама ... и я могу опубликовать фотографию проблемы ... но ее исправлено!

но вот ссылка на проблему click here

+0

Посмотрите на XIb, где ваш контроллер представления является. Измените класс так же, как вы делали с FileOwner. –

+0

Я не понимаю, что вы пытаетесь сказать, не могли бы вы прояснить? – Boos1993

+0

Вы видели, что объект, генерирующий ошибку, не является ViewController, а UIApplication? Можете ли вы опубликовать код, где это вызвано? Я хотел, чтобы вы сделали то же самое, что и ответ. То, что я предлагаю вам сделать, - найти класс Identity Inspector не в FileOwner, а в самом представлении. Вы объявляете его в любом xib или создаете его непосредственно на коде? –

ответ

2

найденную неполадку !! Я чувствую себя глупо сейчас;) Но в любом случае, вот скриншот проблемы!

Devices "Main Interface" had been unintentionally set

0

При инициализации MasterViewController (там, где вы запускаете его из списка), убедитесь, что вы его инициализации с соответствующим бобах файл

Ex.

MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"YourNibName" bundle:nil]; 
+0

Я только что проверил, и это правильно, спасибо, хотя – Boos1993

+1

Как ваша установка xib? У него просто есть объект «UIView» с установленной в нем точкой просмотра «Владельцы файлов». Или вы добавили UIViewController в xib.? Если последние удостоверяются, что файл имеет соответствующий класс (MasterViewController). – tofortier

+0

См. Выше ответ – Boos1993

1

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

Если метка подключена к файла Владелец - это должно быть MasterViewController.

Если вы создали другой UIViewController в пределах XIb и подключен ярлык Airport1 к нему, то этот контроллер также должен быть подключен к MasterViewController (поле Идентичность инспектор «класса».)

Обновлено. Добавлены скриншоты:

This is File Owner's

This is Identity Inspector

+0

Thats weird вещь, у меня была эта проблема раньше, и поэтому я проверил это, и у меня есть класс, установленный для моего viewController. Это должно быть что-то еще – Boos1993

+0

Извините, я не могу угадать вашу проблему. Это просто самая распространенная ошибка. Если вы снова проверьте свои xib-коннекторы - я уверен - вы найдете причину. – SVGreg

+0

У меня есть мой класс правильно:/Мне жаль, что это было так просто [Скриншот] (http://safeflight.boosproductions.com/Untitled.tiff) – Boos1993

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