【问题标题】:Get integer value from another class从另一个类获取整数值
【发布时间】:2011-10-02 02:44:06
【问题描述】:

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

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

我该怎么做?

MainViewClass : UIViewController {
int score;
}


#import "MainViewClass.h"
OtherClass : MainViewClass{

}

然后在 OtherClass 的 .m 中,我希望能够使用变量 score。

我该怎么做?

我在互联网上进行了搜索,并尝试了几种方法以使其正常工作。

感谢收看! 有一个美好的一天。

【问题讨论】:

    标签: objective-c ios inheritance integer


    【解决方案1】:

    在 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;
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2013-01-08
          • 2018-07-19
          • 2021-10-19
          • 1970-01-01
          • 2014-09-26
          • 2020-06-09
          • 2014-01-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多