我试图寻找关于这个(简单)问题的答案,但似乎没有什么效果好,甚至书籍也不那么具体(至少我读过的书),或者我可能只是遗漏了一些重要的东西,因为我有点困惑,我决定在这里试试。
以下是问题:
假设我有一个包含一个或多个实例变量的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,因为我在某处读过但这对任何方式都无济于事......我希望这很明显是问题
答案 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中实现该方法。