2015-08-26 2 views
0

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

[self.brain operandStack removeAllObjects]; 

и

[self.brain.operandStack removeAllObjects]; 

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

+0

* Что * ошибка компилятора вы получаете? – Glorfindel

ответ

0
[self.brain.operandStack removeAllObjects]; 

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

@property (nonatomic, strong) NSMutableArray *operandStack; 

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

@synthesize operandStack; 

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

+0

Спасибо. но я уже сделал оба. В Brain у меня есть: – Cheesehead1957

+0

Пожалуйста, разместите свой код в вопросе - он будет нечитаемым в комментариях. Кроме того, отправьте также ошибки компилятора. – Glorfindel

+0

@ Cheesehead1957 Имейте в виду, что свойство 'brain' внутри' self' должно быть тем же самым экземпляром 'Brain', который содержит массив, на который вы написали данные. Это не может быть новый экземпляр, поэтому вам придется передать текущему классу ссылку на этот объект. – Cole

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