访问另一个类中的变量

时间:2012-02-23 23:09:25

标签: objective-c xcode xcode4.2

我在class1中有一个我需要在class2中使用的整数。我在class2的.m文件中导入了class1的.h文件,但我仍然无法访问该变量。不知道为什么! :(

我甚至为class1的.h文件中的每个整数创建了一个属性,并在.m文件中合成它。

任何人都知道问题是什么?

基本上,这就是我在class1.h

中所拥有的
//interface here
{
    NSInteger row;
    NSInteger section;
}

@property NSInteger row;
@property NSInteger section;

,这是class1的.m文件。

//implementation
@synthesize section = _section;
@synthesize row = _row;

然后在class2的实现中,我有了这个

#import "Class2.h"
#import "Class1.h"

如何在类2中的方法中访问这些整数?

2 个答案:

答案 0 :(得分:5)

您需要创建class1的实例(对象)才能访问属性(变量)。

// Create an instance of Class1
Class1 *class1Instance = [[Class1 alloc] init];

// Now, you can access properties to write
class1Instance.intProperty = 5;
class1Instance.StringProperty = @"Hello world!";

// and to read
int value1 = class1Instance.intProperty;
String *value2 = class1Instance.StringProperty;

修改

// Create an instance of Class1
Class1 *class1Instance = [[Class1 alloc] init];

// Now, you can access properties to write
class1Instance.row = 5;
class1Instance.section = 10;

// and to read
NSInteger rowValue = class1Instance.row;
NSInteger sectionValue = class1Instance.section;

答案 1 :(得分:0)

我分享了类似问题的答案(看看How can I access variables from another class?)。但是,我可以在这里重复一遍。

在" XCode"你需要进行导入,通过将其声明为属性来创建对象,然后使用" object.variable"句法。文件" Class2.m"将以下列方式看待:

#import Class2.h
#import Class1.h;

@interface Class2 ()
...
@property (nonatomic, strong) Class1 *class1;
...
@end

@implementation Class2

//accessing the variable from balloon.h
...class1.variableFromClass1...;

...
@end