2012-06-01 3 views
0

Парсер XML пытается выделить массив NSMutable своего делегата с именем masterCodeList. Из следующего кода вы увидите, что это не удается. (Я всего новичок.)NSMutable Array не будет выделять, остается nil

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? как определяется '' masterCodeList' в вашем объекте dataController? –

+6

- это dataController nill? – rooster117

+0

Кроме того, почему у вас есть ваш младший (дочерний) XML-синтаксический анализатор, пытающийся выделить ваш делегат (потенциально родительский «masterCodeList». Почему делегат не делает этого сам? – trumpetlicks

ответ

1

Как выглядит ваше объявление masterCodeList? Это свойство, и оно синтезировано, или вы создаете свой собственный сеттер/геттер?

В качестве альтернативы можно попробовать использовать промежуточный заполнитель, то есть:

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

и посмотреть, если это устанавливает ваш массив правильно.

(примечание: этот код может иметь или не иметь утечек)

+0

это свойство: свойство (неатомической, копия) NSMutableArray * masterCodeList; и синтезируется:?! синтезируют masterCodeList = _masterCodeList Я уже пробовал массив temp и не работал (я попробую еще раз). Я также пробовал это, и он не работал: [dataController setMasterCodeList: [[N SMutableArray alloc] init]]; – AlexMath

0

вы могли бы опубликовать реализацию объекта dataController в этом классе, и его атрибуты из другого класса?

вы также можете попробовать использовать метод isEqual вместо == nil.

+0

, если это указатель, что делает метод isEqual для вас? == должно быть просто отлично. Конечно, если вы действительно хотите быть законным программистом в стиле C, вы делаете, если (! DataController.masterCodeList) – Jarsen

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