2011-11-04 32 views
0

我得到這個錯誤:IOS難以理解的錯誤

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[LauncherViewController initWithNibName:managedObjectModel:andPartnerKey:]: unrecognized selector sent to instance 0x6d52100' 

當我打電話以下功能:

- (id)initWithNibName:(NSString *)nibNameOrNil 
    managedObjectModel:(NSManagedObjectModel *)mom 
     andPartnerKey:(NSString *)key { 

    self = [super initWithNibName:nibNameOrNil bundle:[NSBundle mainBundle]]; 
    if (self) { 
     managedObjectModel = mom; 
     connected = YES; 
     sync_failure = NO; 
     partnerKey = key; 
    } 
    return self; 
} 

以下參數:

NSManagedObjectModel *mom = [self managedObjectModel]; 
NSString *launcherNibName = @"LauncherView"; 
NSString *key = @"87654321"; 

,當然我的檢查[self managedObjectModel]實際上是否返回了正確的值。

N.B. :LauncherViewController類是在靜態庫內部構建的。

任何想法?? 在此先感謝

+0

您正在對'LauncherViewController'類型的對象調用'initWithNibName:managedObjectModel:andPartnerKey:'而不是要調用的對象。請說明你如何*調用*該方法。 – DarkDust

+0

LauncherViewController * launcher = [[LauncherViewController alloc] initWithNibName:launcherNibName managedObjectModel:mom andPartnerKey:key]; – Alexis

回答

0

如果您更改視圖控制器但忘記更改筆尖及其連接,則視圖控制器從筆尖初始化可能會導致最容易混淆的錯誤。這可能是這裏的問題。通過用新創建的空白筆尖替換筆尖,您可以很容易地找到答案。

+0

好像xcode搞砸了。我建立了一個新項目,使用相同的靜態庫複製/粘貼相同的代碼,現在它完美地工作。謝謝你的幫助。 – Alexis

0

您的班級LauncherViewController沒有initWithNibName:managedObjectModel:andPartnerKey方法。由於您引用了該方法的實現,因此您似乎只是分配了錯誤的類(或者您需要在類LauncherViewController上調用正確的初始化程序)。

+0

我知道,那是錯誤的。因爲(對不起,我不斷重複自己):你的類LauncherViewController沒有initWithNibName:managedObjectModel:andPartnerKey方法。 – DarkDust

+0

我自己實現了這個方法。 – Alexis

+0

我創建了這樣的啓動器對象: LauncherViewController * launcher = [[LauncherViewController alloc] initWithNibName:launcherNibName managedObjectModel:mom andPartnerKey:key]; 當我在一個測試項目中使用我的靜態庫的源代碼(我的意思是沒有構建它並將它包含在另一個項目中)時,這實際上正在工作。 – Alexis