2012-02-29 65 views
2

昨天晚上我正在開發我的iOS應用程序,當時我測試它並在啓動時崩潰。我甚至沒有在造成碰撞的筆尖上工作。不管怎樣,下面是錯誤代碼:Xcode崩潰時的IB連接

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和模擬器,甚至沒有一個「乾淨」的建立(這聽起來像這將有助於...)

感謝, 安德魯

編輯這是我的AppDelegate,我設置正確的廈門國際銀行的窗口

- (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

查找您的視圖控制器是廈門國際銀行。以與FileOwner相同的方式更改類。 – 2012-02-29 17:23:26

+0

我不明白你想說什麼,請你澄清一下? – Boos1993 2012-02-29 17:33:25

+0

您是否看到生成錯誤的對象不是ViewController而是UIApplication?你可以發佈代碼在哪裏被調用?我想讓你做的和給出的答案一樣。我建議你要做的是找到Identity Inspector類不在FileOwner上,而是在View Controller本身。你是否在任何xib中聲明它,或者直接在代碼中創建它? – 2012-02-29 17:44:15

回答

2

發現了這個問題!我現在覺得有點愚蠢;但無論如何,這裏是問題的截圖!

Devices "Main Interface" had been unintentionally set

0

鏈接在你初始化MasterViewController(無論你是從啓動它),請確保您有合適的筆尖文件

例對其進行初始化。

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

我剛剛檢查過,它是正確的,謝謝 – Boos1993 2012-02-29 17:31:57

+1

你的xib設置如何?它是否只有一個「UIView」對象,其「File Owners」視圖出口設置爲它。或者你是否將UIViewController添加到xib中?如果後者確保該文件具有適當的類(MasterViewController)。 – tofortier 2012-02-29 17:47:56

+0

查看上面的答案 – Boos1993 2012-02-29 18:11:35

1

導致崩潰的原因可能是xib到header的連接錯誤。 Airport1可以連接到MasterViewController以外的其他類。

如果您的標籤連接到文件的所有者 - 它應該是MasterViewController

如果您已經創建了廈門國際銀行中的另一個UIViewController中並連接Airport1標籤給它,那麼這個控制器也必須連接到MasterViewController身份督察」字段。)

更新。新增截圖:

This is File Owner's

This is Identity Inspector

+0

這就是奇怪的事情,我以前有過這個問題,所以我檢查了,我有我的viewController類設置。它一定是別的 – Boos1993 2012-02-29 17:39:19

+0

對不起,我不能猜你的問題。這只是最常見的錯誤。如果你再次檢查你的xib連接器 - 我確定 - 你會找到原因。 – SVGreg 2012-02-29 17:44:10

+0

我有我的班級設置正確:/我希望這是簡單的[Screenshot](http://safeflight.boosproductions.com/Untitled.tiff) – Boos1993 2012-02-29 17:45:03