我目前正在開發一款管理飛機機隊的iPad應用程序。我想使用NSXMLParser讀取XML文件中的數據,該文件創建包含數據的「Airplane」實例。 NSXMLParser以及NSXMLParserDelegate是App Delegate的子代。我正在使用一個選項卡視圖佈局。解析本身工作得很好。一個包含Aircraft對象的NSMutableArray被傳遞給選項卡視圖控制器。問題在於,從Tab View Controller中,無法訪問「Airplane」對象的屬性,導致出現「EXC_BAD_ACCESS」警告。但是,從App Delegate類訪問時,它工作得很好。這是委託類的屬性定義:EXC_BAD_ACCESS數據通過後
@property (copy, readonly) NSMutableArray* airplanes;
它被傳遞到視圖控制器是這樣的:
fleetViewController.airplanes = delegate.airplanes;
屬性定義在fleetViewController:
@property (copy, readwrite) NSMutableArray *airplanes;
而且這是拋出異常的部分:
registration = [[airplanes objectAtIndex:0] registration];
正如我所說,當從App Delegate調用同樣的方法時,它可以毫無困難地工作。如果您正在使用性能
幫助是極大的讚賞
儘管這是事實,你應該避免在initialisers和dealloc的使用'self.'。 – Abizern 2012-01-29 13:49:30
嗯..不知怎的,我的樂器似乎不能正常工作,當我在「配置文件」模式下運行時,錯誤不能被重現,而是什麼也沒有發生,現在對象甚至沒有傳遞。 – Mathis 2012-01-29 13:55:47
更新:我注意到我有Airplanes類中的屬性設置爲「複製」。由於實際上並不需要我將它改爲「保留」,並帶來令人驚訝的結果:現在錯誤不再以常規方式發生,它彈出遍及整個代碼,永遠不會在同一個地點兩次行。有時候根本沒有錯誤發生,大約有一半的NSString被返回。例如,一架飛機的註冊爲「HB-CHX」,並返回「HB-C」。我迄今爲止最奇怪的是「German.lproj」被返回。這對我沒有意義..任何人? – Mathis 2012-01-29 14:30:08