2012-06-01 34 views
0

XML解析器試圖分配其委託的NSMutable數組,名爲masterCodeList。從下面的代碼中,你會看到這個失敗。 (我是新手)NSMutable Array將不會分配,仍然爲零

if (dataController.masterCodeList == nil){ 

    dataController.masterCodeList =[[NSMutableArray alloc] init]; 
    if (dataController.masterCodeList == nil) { 
     NSLog(@"the init of the mutable array did NOT work"); 
    } 
} 

我每次都收到the init of the mutable array did NOT work消息。我正在導入dataController頭。

#import "CodeDataController.h" 

我沒有收到其他錯誤消息,解析器解析正常,應用程序運行平穩,沒有內容。

在此先感謝。

+0

你使用ARC嗎?在你的dataController對象中如何定義「masterCodeList」? –

+6

是dataController nill? – rooster117

+0

此外,爲什麼你的底層(子)XML解析器試圖分配你的委託(可能是父類的「masterCodeList」。爲什麼委託沒有這樣做? – trumpetlicks

回答

1

你的masterCodeList聲明是什麼樣的? 它是一個屬性,它是合成的,還是你自己創造了一個setter/getter?

另一種方法是使用中間的佔位符,即嘗試:

NSMutableArray *temp = [[NSMutableArray alloc] init]; 
[dataController setMasterCodeList:temp]; 

,看看是否正確設置你的陣列。

(注:即代碼可能會或可能不會有泄漏)

+0

這是一個屬性: 財產(非原子,副本)的NSMutableArray * masterCodeList; ,它是合成的!?! 合成masterCodeList = _masterCodeList ; 我以前試過一個臨時數組,它沒有工作(我會再試一次)。我也試過這個,它不工作: [dataController setMasterCodeList:[[N SMutableArray alloc] init]]; – AlexMath

0

你可以張貼在這個類你對DataController類對象的實現,並從其他類的屬性?

您也可能想嘗試使用isEqual方法而不是== nil。

+0

如果它是一個指針,那麼使用isEqual方法會爲您做什麼? ==應該很好。當然,如果你真的想成爲一個合法的C風格程序員,你可以這樣做(!dataController.masterCodeList) – Jarsen

相關問題