0

我试图寻找关于这个(简单)问题的答案,但似乎没有什么效果很好,甚至书籍也不是那么具体(至少我读过的书),或者我可能只是错过了一些重要的东西,因为我有点困惑我决定在这里试试。

这是问题:

假设我有一个包含一个或多个实例变量的 ClassA。然后我有一个 ClassB,它包含一个修改 ClassA 变量的实例方法(这可能对吗?)这些类没有相互继承,都继承自 NSObject

然后我想在 UIViewController 上的 ClassA 对象上调用 ClassB 的方法。我相信我需要类之间的参考,但我不确定如何设置它们以使它们工作。想象一下,我有一张纸,其中包含写入或数字(在本例中为数字)和一个擦除类来修改它的变量和擦除数字(例如通过减法)。

这是一些代码:

纸.h

@interface Paper : NSObject

@property (nonatomic) int numbers;

@end

论文.m

#import "Paper.h"

@implementation Paper

@synthesize numbers;

@end

和 Eraser.h

@interface Eraser : NSObject

-(void)eraseMethod;

@end

橡皮擦.m

#import "Eraser.h"

@implementation Eraser

-(void)eraseMethod {
//here I want to make a subtraction of the ivar declared in Paper
}

@end

最后我试图像这样在 UIViewController 上调用它

[paperObject eraseMethod];

我尝试在每个文件中声明@class,就像我在某处读过的那样,但这对任何方式都没有帮助......我希望这是一个明确的问题

4

1 回答 1

-1

Ivars 只是存储槽,在没有指定访问条件的情况下它们是类私有的。您可以使用属性来从另一个类访问。更多信息在这里

为了实现您所说的,使该方法成为类方法, 请参见此处

#import "Eraser.h"
@implementation Eraser

+(void)eraseMethod {
//here I want to make a subtraction of the ivar declared in Paper
}

@end

因此您可以在您的 VC 中实现该方法。

于 2013-02-17T20:01:05.500 回答