从另一个Objective-C类访问int
问题描述:
我试图从另一个类获取一个int,它只是说这个数字是0(但它不是)。从另一个Objective-C类访问int
这是Class2.h:
@interface Class2 : SKScene <SKPhysicsContactDelegate>{
Class1 * class;
}
这是Class2.m:
NSLog(@"%i", class.thisint);
这是Class1.h:
@property (assign, nonatomic) int thisint;
这是在1类.m(in viewDidLoad):
thisint = 5;
NSLog在viewDidLoad方法后被调用,但它只是说0。我如何从Class1获得这个int?我不知道是否Class2是一个SKScene的事实影响这...
答
class
是一个NSObject的现有方法,我希望你只是用这个名称的目的这个问题 - 如果没有,请更改变量的名称,这只会导致混淆。
你看到了什么,如果你登录class
:
NSLog(@"%@",class);
(把旁边在您现有的日志)
如何和你在哪里分配给class
变量?
0值可能意味着两件事情之一:
-
class
是nil
。这意味着你没有将它分配到任何地方。你不会因为你已经声明一个神奇地获得一个物业的价值 -
class
是你认为它的一个不同的实例。这是一个常见的错误初学者,你已经做了一些类似class = [[Class2 alloc] init];
这将创建一个新例如。您需要获取对现有实例的引用,如果没有看到更多代码,我无法告诉您该如何实施。
尝试使用访问器来分配此? self.thisint = 5;我也会删除(assign,nonatomic)原语,并声明像@property int thisint这样的属性;另外,您在哪里分配并启动Class2中名为'class'的ivar?你到目前为止所有的指针都是一个名为'class'的Class1的无指针 – Bamsworld 2014-09-13 06:50:50