2012-10-10 31 views
0

我想Pars在Objective-C的我的XML文件,但我得到了一個錯誤XML解析器終止Objective-C的

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: 
'[<Presentation1Name 0x74592f0> setValue:forUndefinedKey:]: this class is not key value 
coding-compliant for the key slide.' 
*** First throw call stack: 
(0x1c93012 0x10d0e7e 0x1d1bfb1 0xb7d711 0xafeec8 0xafe9b7 0x5129 0xbb11c7 0x48c65ee 
0x48c5f07 0xbaf6d2 0x2008 0x157b7 0x15da7 0x16fab 0x28315 0x2924b 0x1acf8 0x1beedf9 
0x1beead0 0x1c08bf5 0x1c08962 0x1c39bb6 0x1c38f44 0x1c38e1b 0x167da 0x1865c 0x1e5d 
0x1d85) 

libc++abi.dylib: terminate called throwing an exception 
(lldb) 

彪小寫的介紹,我不「T有一個錯誤BU我不能收杆標籤=「presentation1」但是當我將其更改爲大寫在前P - >演示我可以收杆,但與終止進程

請你給我一些暗示對發現問題

回答

3

aPresentation是你自己的類?所以很難確切知道它由什麼組成,但是你的錯誤即將到來當您嘗試做(除非你沒有表現出更多的代碼):

[aPresentation setValue:currentElementValue forKey:elementName]; 

這裏你說你有一個名爲的ElementName對象aPresentation的屬性;特別是你的錯誤是說有一個名爲「幻燈」

沒有財產是否有一個屬性(變量)名稱爲「幻燈片」?顯然不是。

我建議硬編碼elementName爲什麼,因爲顯然他們沒有排隊與你的類。

根據XML你的財產(內aPresentation)應該被命名爲「幻燈片」,所以在你的類屬性或者重命名爲幻燈片或只是改變元素名稱爲您知道它是。

[aPresentation setValue:currentElementValue forKey:@"slideLabel"]; 

一些,這是猜測,沒有看到Presentation1Name

的階級結構

我也想指出你沒有關注的一些約定,這使得該代碼非常難以閱讀。屬性名稱應大寫(首字母),包括在你的類名的數字是確定的,但不是經常使用,可能沒有必要在這種情況下。要檢查如果elementName爲幻燈片或幻燈片,真正的東西不應該改變,你應該能夠消除這些語句之一。我還建議總是使用括號,你的一些其他statments的不

+0

非常感謝,它的工作原理 – AntonMac