如何将消息从实例方法发送到另一个类的对象

时间:2013-02-17 19:43:47

标签: objective-c class inheritance methods

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

以下是问题:

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

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

这里有一些代码:

Paper.h

@interface Paper : NSObject

@property (nonatomic) int numbers;

@end

Paper.m

#import "Paper.h"

@implementation Paper

@synthesize numbers;

@end

和Eraser.h

@interface Eraser : NSObject

-(void)eraseMethod;

@end

Eraser.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,因为我在某处读过但这对任何方式都无济于事......我希望这很明显是问题

1 个答案:

答案 0 :(得分:-1)

Ivars只是存储槽,在没有指定访问条件时它们是类的私有。您可以使用属性来访问另一个类。 more info here

为了实现你所说的,使方法成为一种类方法 see here

#import "Eraser.h"
@implementation Eraser

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

@end

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