【问题标题】:Passing a class variable pointer to non-class method in Objective C将类变量指针传递给Objective C中的非类方法
【发布时间】:2011-12-07 03:46:05
【问题描述】:

我有两个相互通信的类(每个类中的进程依赖于另一个类的几个对象)。在 Class1 中,我在接口中声明了一个 CvMat 对象 prevMat1:

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

现在,我在 Class2 中有一个类方法,我将 prevMat1 从 Class1 传递到。我需要 Class2 中的方法来更新 prevMat1 的值,并将新值反映在 Class1 中。我目前这样调用这个方法:

[Class2 doSomething:self.prevMat1];

在 Class2 中,我正在处理名为 prevMat2 的对象。这是函数:

@implementation Class2

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

@end

按照目前的构造方式,Class1 中的 self.prevMat1 是否会更新为 Class2 中分配给 prevMat2 的新值?我担心它可能无法按照我的预期工作,因为我不是发送指针,而是对象本身(我认为)。

谢谢

【问题讨论】:

  • 你为什么不使用委托呢?会更有意义。

标签: objective-c pointers pass-by-reference class-variables


【解决方案1】:

如果 prevMat1 被声明为 Something**,那么当您将其用作参数时,您不会发送对象,而是发送指针的地址。

(希望你没有保留 prevMat1。)

【讨论】:

  • 我没有保留 prevMat1。所以在 Class2 中对 prevMat2 所做的任何更改都应该反映在我编写的 prevMat1 中?
  • prevMat2 指向的位置所做的任何更改都应反映在 prevMat1 中。即,您需要记住“*”。
猜你喜欢
  • 2012-12-11
  • 1970-01-01
  • 1970-01-01
  • 2011-01-26
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多