Невозможно получить доступ к переменной из другого класса в Какао - PullRequest
1 голос
/ 03 августа 2011

У меня есть 2 класса в Какао, но я не могу получить доступ к переменным от одного к другому.

Class1.h:

@interface MyClass : NSOpenGLView
{
int myVar;
}
@property (assign) int myVar;

Class1.m

@implementation MyClass
@synthetize myVar;
...
myVar=5;

Class2.m

MyClass *theClass=[MyClass alloc];
nb=theClass.myVar;

==> nb = 0 (вместо 5), и я уверен, что myVar = 5 был выполнен.

Что я сделал не так?

Спасибо!

1 Ответ

2 голосов
/ 03 августа 2011

В Class2 вы создаете новый экземпляр MyClass, а не ссылаетесь на существующий экземпляр, для которого ранее вы установили свойство myVar равным 5.

Стоит также упомянуть, что, если вам нужно было создать новый экземпляр MyClass (что вам не нужно), эта строка:

MyClass *theClass=[MyClass alloc];

должна быть:

MyClass *theClass=[[MyClass alloc] init];

С Выделениеи Инициализация объектов :

Для создания объекта с использованием Objective-C требуется два шага.Вы должны:

  • Динамически выделить память для нового объекта
  • Инициализировать вновь выделенную память для соответствующих значений

Объект не является полностью функциональным, покаоба шага были завершены.Каждый шаг выполняется отдельным методом, но обычно в одной строке кода:

id anObject = [[Rectangle alloc] init];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...