2012-01-24 98 views
2

我想初始化一個NSArray的值的NSMutableArray但是當我NSLog新創建的NSMutableArray我得到的是(null),(null)...等如何初始化NSMutableArray裏與NSArray的

我不知道爲什麼這會發生它的超級沮喪。

我設立在包頭myMutableArray@synthesize等。

然後在parserdidend委託這是我嘗試做。

- (void)parserDidEndDocument:(NSXMLParser *)parser 
{ 
    if (dataSetToParse == @"ggf"){   
     //Filter results (ISTOY = T) 
     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like %@",@"ISTOY",@"T"]; 
     NSArray *filteredArray = [parsedDataArrayOfDictionaries filteredArrayUsingPredicate:predicate]; 

     NSLog(@"%@", filteredArray); //This prints correct details 

     [myMutableArray setArray:filteredArray]; 

     NSLog(@"%@", myMutableArray); //This prints (null), (null)... etc 

    //Use myMutableArray later... 
    } 

這幾乎總結了它。

回答

5

我猜myMutableArray是nil?

此外,你可以這樣做:

myMutableArray = [ [ filteredArray mutableCopy ] autorelease ] ; 

(如果你是ARC下不添加自動釋放)

+0

另外,如果'parsedDataArrayOfDictionaries'和'myMutableArray'是支持屬性的成員變量,我認爲最好使用屬性訪問器,也就是'self.myMutableArray' – nielsbot

+0

這有效。爲什麼你認爲其他的方式我試圖不工作?? ... –

+0

好吧有點明白你在說什麼,但你的意思是支持屬性?,我會標記你的答案是正確的,只要時間到了:) –

0

正如nielsbot說,或者:

myMutableArray = [NSMutableArray arrayWithArray: filteredArray]; 

這已經返回一個autoreleased實例,如果你需要擔心的話。