0

この (単純な) 質問についての答えを探してみましたが、何もうまくいかないようです。少し混乱して、ここで試してみることにしました。

質問は次のとおりです。

1 つまたは複数のインスタンス変数を含む ClassA があるとします。次に、ClassA変数を変更するインスタンスメソッドを含むClassBがあります(これは可能ですか?)クラスは互いに継承しておらず、両方ともNSObjectから継承しています

次に、UIViewController の ClassA オブジェクトに対して ClassB のメソッドを呼び出したいと思います。クラス間の参照が必要だと思いますが、それらを機能させるためにそれらを設定する方法がわかりません。書き込みまたは数値 (この場合は数値) を含む Paper と、その変数を変更して数値を消去するクラスの消去 (たとえば、減算による) があるとします。

ここにいくつかのコードがあります:

紙.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

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 を宣言してみましたが、これは何の役にも立ちません...これが質問として明確であることを願っています

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 に答える