我在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中的方法中访问这些整数?
答案 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