Xcode очистить изменяемый массив в другом классе

В Xcode v6.4 у меня есть приложение-калькулятор с классами Calculator и Brain. В Brain есть изменяемый массив под названием operandStack. Я хотел бы очистить содержимое operandStack от класса Calculator. Возможно ли это, и если да, то как это делается? Я пробовал (получить ошибки компилятора):

[self.brain operandStack removeAllObjects];

а также

[self.brain.operandStack removeAllObjects];

В Brain я объявил свойство @property (nonatomic, strong) NSMutableArray * operandStack; синтезированный оператор @synthesizeStack = _operandStack; Все еще получаю те же ошибки компилятора для [self.brain.operandStack removeAllObjects] в классе Calculator.


person Cheesehead1957    schedule 26.08.2015    source источник
comment
Какую ошибку компилятора вы получаете?   -  person Glorfindel    schedule 26.08.2015


Ответы (1)


[self.brain.operandStack removeAllObjects];

будет работать, но только если вы объявите operandStack как свойство в Brain.h:

@property (nonatomic, strong) NSMutableArray *operandStack;

(и включить синтезатор в Brain.m):

@synthesize operandStack;

Я подозреваю, что operandStack в настоящее время является локальной переменной или переменной экземпляра в Brain.

person Glorfindel    schedule 26.08.2015
comment
Пожалуйста, разместите свой код в вопросе - он будет нечитаем в комментариях. Также, пожалуйста, опубликуйте ошибки компилятора. - person Glorfindel; 26.08.2015
comment
@ Cheesehead1957 Имейте в виду, что свойство brain в self должно быть тем же экземпляром Brain, который содержит массив, в который вы записали данные. Это не может быть новый экземпляр, поэтому вам придется передать текущему классу ссылку на этот объект. - person Cole; 26.08.2015