访问已在另一个中修改的int的值

时间:2013-03-20 16:15:08

标签: objective-c class variables

如果这是一个明显的问题,请道歉。我有一个VC A和一个VC B(它是A的子类)。在A的.m中我有一个名为currentQuestion的int计数器。如果用户输入了错误答案,VC A将转到VC B.在B中,我想访问currentQuestion的当前值,以便将正确的图像放在leftImageViewer中。它似乎将currentQuestion识别为已经实例化的变量,但没有显示正确的值。

leftImageViewer.image = [UIImage imageNamed:left[currentQuestion]];

1 个答案:

答案 0 :(得分:0)

您必须将currentQuestion的值传递给VCB,因为VCB正在创建所有实例变量的全新实例(或者通常会发生这种情况,很难分辨出代码):

// an example of how to create 'VCB', this is NOT in 'VCB.m'
VCB *vcb = [[VCB alloc] init];
[vcb setCurrentQuestion:[self currentQuestion]];
// present 'vcb' how you are doing so now

当然,假设您有一个属性@property int currentQuestion

更一般地说,您需要查看inheritancepolymorphism的概念,以便更好地了解正在发生的事情。

<强>更新

您的VCA应如下:

@interface VCA : UIViewController
    // ...
@property int currentQuestion; // this will allow 'currentQuestion' to be accessible
    // ...
@end

为了理解为什么以及如何工作,我建议您更好地了解继承的工作原理。它是面向对象编程的基本概念。