从另一个类获取整数值

时间:2011-07-10 03:41:37

标签: objective-c ios inheritance integer

我知道我以前做过这个,但我不记得怎么做了。

我有一个整数,我希望能够在我的另一个类中进行更改。

我该怎么做?

MainViewClass : UIViewController {
int score;
}


#import "MainViewClass.h"
OtherClass : MainViewClass{

}

然后在其他类的.m中我希望能够使用变量得分。

我该怎么做?

我在互联网上搜索过,尝试了几件让它上班的事情都没有成功。

感谢您的期待! 祝你有美好的一天。

3 个答案:

答案 0 :(得分:5)

在MainViewClass.h中,您需要将int添加为该类的属性。

@property (nonatomic, readwrite) int score;

然后在MainViewClass.m中,您将要使用以下方法合成属性:

@synthesize score;

现在,由于您在OtherClass中继承了MainViewClass,您可以使用以下某些组合来访问它的属性。

在你的OtherClass.h中添加

MainViewClass * mainViewClass;

在您的OtherClass.m中,只要您需要访问乐谱,您就应该能够访问它。

mainViewClass = (MainViewClass *) self.parent;

然后使用分数

mainViewClass.score;

答案 1 :(得分:4)

在您的示例中,int score实例变量,或者 ivar 。它是与MainViewClass的任何给定实例相关联的一段数据。默认情况下,实例变量具有@protected可见性,这意味着只有MainViewClass及其子类才能访问它。

现在,您在示例中将OtherClass作为MainViewClass的子类,这意味着从同一个对象访问score 您只需键入{{ 1}}或score,以及self->score的另一个对象,您只需要输入MainViewClass。 (这种设计暴露了实现细节,因此许多编码人员通常认为这是一种糟糕的设计,但对于像这样的简单用例,你可能会侥幸逃脱。为什么这个讨论已经持续了 years 并超出了这个问题的范围。)

答案 2 :(得分:2)

使用整数在类中创建getter和setter方法(或具有合成访问器的属性),为另一个类提供对第一个类的某个实例的引用,并让它使用这些访问器来获取和设置整数