我已經編寫了一些用於鑽取表格應用程序的代碼,但是應用程序僅在運行時崩潰。 Xcode在構建應用程序時不會給我任何錯誤。調試器輸出:在運行時調試時出現故障
2012年10月18日10:58:26.513秒[474:C07] - [NavController setItems:]:無法識別選擇>發送到實例0xc217a00 2012年10月18日10時58分: 26.515秒[474:C07] *終止應用程序由於未捕獲的異常> 'NSInvalidArgumentException' 的,原因是: ' - [NavController setItems:]:無法識別的選擇發送>到實例0xc217a00' *第一擲調用堆棧: (0x14b8022 0xeb8cd6 0x14b9cbd 0x141eed0 0x141ecb2 0x3fbe 0xe2a1e 0x41401 0x41670 0x41836> 0xbfc9dd8 0x4872a 0x19596 0x1a274 0x29183 0x29c38 0x1d634 0x13a2ef5 0x148c195 0x13f0ff2> 0x13ef8da 0x13eed84 0x13eec9b 0x19c65 0x1b626 0x1d40 0x1cd9) 終止稱爲肆意克例外
我想我明白,錯誤在於NavController.m其中:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString* path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
MasterViewController* root = (MasterViewController*)self.topViewController;
NSDictionary* thelist = [NSDictionary dictionaryWithContentsOfFile:path];
root.items = [thelist objectForKey:@"Items"];
root.navigationItem.title = [thelist objectForKey:@"name"];
}
順便說一句,我犯了這樣的數組項:(非原子,保留)的NSArray *物品;
因此,我將不得不將'MasterViewController * root'更改爲'NavController'? setItems方法將如何實現?對不起,可能是愚蠢的問題。 – user1738193
@ user1738193我不知道你的項目的全部代碼以及你在引用方法中想要做什麼,我只是告訴你,topViewController不是MasterViewController。如果你說它應該是一個,那麼你的錯誤是在其他地方(例如,你在界面生成器或代碼中的其他地方將錯誤的對象分配給了這個屬性)。 – Mecki
事實證明,問題出在界面構建器中。我將它分配給MasterViewController,使其顯示錯誤。感謝所有的幫助。 – user1738193