2012-01-24 3 views
2

Я пытаюсь инициализировать NSMutableArray со значениями в NSArray, но когда я NSLog вновь созданного NSMutableArray все это я получаю (null), (null) ... и т.д.как инициализировать NSMutableArray с NSArray

I понятия не имею, почему это происходит из-за его разочарования.

Я настроил 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 - это нуль?

Кроме того, вы можете сделать это:

myMutableArray = [ [ filteredArray mutableCopy ] autorelease ] ; 

(не добавляйте autorelease, если вы находитесь под ARC)

+0

также, если 'parsedDataArrayOfDictionaries' и' myMutableArray' являются элементами поддержки переменных, я думаю, что лучше использовать атрибуты свойств, то есть 'self.myMutableArray' – nielsbot

+0

Это сработало. Почему вы думаете, что другой способ я пытался не работать? ... –

+0

okay kinda понимаю, о чем вы говорите, но что вы подразумеваете под защитой свойств ?, Я помету ваш ответ правильно, как только истечет срок. :) –

0

Как сказал nielsbot, или:

myMutableArray = [NSMutableArray arrayWithArray: filteredArray]; 

Этот уже возвращает экземпляр с автореализацией, если вам нужно беспокоиться об этом.

Смежные вопросы