Objective c 无法从Cocoa中的其他类访问变量

Objective c 无法从Cocoa中的其他类访问变量,objective-c,cocoa,macos,class,Objective C,Cocoa,Macos,Class,我有两个Cocoa类,但无法从一个到另一个访问变量 类别1.h: @interface MyClass : NSOpenGLView { int myVar; } @property (assign) int myVar; 1.m班 @implementation MyClass @synthetize myVar; ... myVar=5; 类别2.m MyClass *theClass=[MyClass alloc]; nb=theClass.myVar; ==>nb=0(而不是5),

我有两个Cocoa类,但无法从一个到另一个访问变量

类别1.h:

@interface MyClass : NSOpenGLView
{
int myVar;
}
@property (assign) int myVar;
1.m班

@implementation MyClass
@synthetize myVar;
...
myVar=5;
类别2.m

MyClass *theClass=[MyClass alloc];
nb=theClass.myVar;
==>nb=0(而不是5),我确信myVar=5已经执行

我做错了什么


谢谢

Class2
中,您正在创建
MyClass
的新实例,而不是引用先前已将
myVar
属性设置为5的现有实例

还值得一提的是,如果您需要创建
MyClass
的新实例(您不需要),这一行:

MyClass *theClass=[MyClass alloc];
应该是:

MyClass *theClass=[[MyClass alloc] init];
发件人:

使用Objective-C创建对象需要两个步骤。您必须:

  • 为新对象动态分配内存
  • 将新分配的内存初始化为适当的值
在完成这两个步骤之前,对象不能完全正常工作。 每一步都是通过一种单独的方法完成的,但通常是在 单行代码:

id anObject=[[Rectangle alloc]init]


MyClass2
中,您正在创建一个新的
MyClass
实例,该实例与创建
MyClass2
实例的第一个实例不同。谢谢。那么,我应该如何引用现有实例呢?Class2函数(mis-)读取值实际上是从Class1开始的。当您创建
MyClass2
的实例时,将值或指针传递给
MyClass
的实例,以便您可以从
MyClass2
访问开始有意义的值!所以现在我在我的类1中,我如何检索它自己的指针?如果我试图通过&myClass1,它不会接受它。谢谢