2012-02-29 3 views
2

어젯밤에 iOS 앱을 테스트 중이었고 시동하자 추락했습니다. 나는 크래시를 일으키는 펜촉에서 일하고 있지도 않았다. 어쨌든, 여기에 오류 코드는 다음과 같습니다IB 연결이 Xcode 충돌로 발생했습니다.

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) 

공항 1은 연결된 함께 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 자체? 나는 (... 그것은 도움이 될 것처럼 소리)를 구축 "청소"않았더라도

감사를 엑스 코드 및 시뮬레이터를 다시 시작하고 한 앤드류

편집이 내 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; 

} 

문제가 해결되었습니다!

나는 어리석은 스팸 여과기 때문에 나의 자신의 질문에 응답 할 수 없다 ... 나는 문제의 그림을 배치 할 수있다 ... 그러나 그것의 조정! (당신이에서를 시작하는 곳) 당신은 적절한 nib 파일

전으로 초기화되어 있는지 만드는 MasterViewController를 초기화하면

그러나 여기에서 문제 click here

+0

보기 컨트롤러가있는 xib를 찾으십시오. FileOwner와 같은 방식으로 클래스를 변경하십시오. –

+0

나는 당신이 무엇을 말하려고하는지 이해하지 못한다. – Boos1993

+0

오류를 생성하는 객체가 ViewController가 아니라 UIApplication인지 확인 했습니까? 이 코드가 호출되는 위치에 코드를 게시 할 수 있습니까? 제가하고 싶었던 것은 주어진 답과 같습니다. 필자가 제안한 것은 FileOwner가 아닌 View Controller 자체에서 Identity Inspector 클래스를 찾는 것입니다. 어떤 xib에서 선언하겠습니까? 아니면 코드에서 직접 생성합니까? –

답변

2

는 문제 발견! 나는 지금 다소 어리 석음을 느낀다.) 그러나 어떻게해서든지, 여기에서는 문제의 screenshot가있다!

Devices "Main Interface" had been unintentionally set

0

에 대한 링크입니다.

+0

방금 ​​확인했는데 정확 합니다만 감사합니다 – Boos1993

+1

xib 설정은 어떻게되어 있습니까? 그냥 "파일 소유자"보기 콘센트가 설정된 "UIView"개체가 있습니까? 또는 xib에 UIViewController를 추가 했습니까? 후자의 경우 파일에 적절한 클래스가 있는지 확인하십시오 (MasterViewController). – tofortier

+0

위의 대답을 참조하십시오 – Boos1993

1

크래시를 일으키는 원인은 xib에서 헤더로 연결되는 실수 일 수 있습니다.Airport1이 (가) MasterViewController가 아닌 다른 클래스에 연결될 수 있습니다.

레이블이 파일 소유자에 연결된 경우 - MasterViewController이어야합니다. 당신이 XIB 내의 다른있는 UIViewController를 생성하고 그것에 공항 1 레이블을 연결 한 경우

은, 다음이 컨트롤러는 MasterViewController에 연결해야합니다 (신원 경위 "클래스"필드.)

업데이트되었습니다. 추가 스크린 샷 :

This is File Owner's

This is Identity Inspector

+0

그 이상한 일, 전에 그 문제가 있었고 그래서 내가 확인하고 클래스를 내 viewController로 설정해야합니다. 그것은 다른 것일 것임 – Boos1993

+0

미안, 나는 당신의 문제를 짐작할 수 없다. 그것은 단지 가장 흔한 실수입니다. xib 커넥터를 다시 확인하면 그 이유를 알 수 있습니다. – SVGreg

+0

클래스가 올바르게 설정되어 있습니다./간단합니다. [스크린 샷] (http://safeflight.boosproductions.com/Untitled.tiff) – Boos1993