0

互いに通信する 2 つのクラスがあります (各クラスのプロセスは、他のクラスのいくつかのオブジェクトに依存します)。Class1 には、インターフェースで宣言された CvMat オブジェクト prevMat1 があります。

@interface Class1 { 
CvMat** prevMat1;
}
@property CvMat** prevMat1;
@end

今、Class1 から prevMat1 を渡すクラス メソッドが Class2 にあります。Class2 内のメソッドで prevMat1 の値を更新し、その新しい値を Class1 に反映する必要があります。現在、このメソッドを次のように呼び出しています。

[Class2 doSomething:self.prevMat1];

Class2 内では、このオブジェクトを prevMat2 という名前で処理しています。これは機能です:

@implementation Class2

+ (void) doSomething: (CvMat**) prevMat2 {
//do some stuff
}

@end

これが現在構築されている方法では、Class1 の self.prevMat1 は、Class2 の prevMat2 に割り当てられた新しい値で更新されますか? ポインターではなくオブジェクト自体を送信しているため、意図したとおりに機能しない可能性があるのではないかと心配しています(私は思います)。

ありがとう

4

1 に答える 1

1

prevMat1 が Something** として宣言されている場合、オブジェクトをパラメーターとして使用するときにオブジェクトを送信するのではなく、ポインターのアドレスを送信しています。

(prevMat1 を保持していないことを願っています。)

于 2011-10-13T17:24:06.367 に答える