将类变量指针传递给 Objective C 中的非类方法

发布于 2024-12-09 20:06:06 字数 657 浏览 1 评论 0原文

我有两个相互通信的类(每个类中的进程都依赖于另一个类中的几个对象)。在 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 的新值进行更新?我担心它可能不会按照我想要的方式工作,因为我没有发送指针,而是发送对象本身(我认为)。

谢谢

I have two classes that communicate with each other (processes in each class depend on a couple of objects from the other class). In Class1, I have a CvMat object prevMat1 declared in the interface:

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

Now, I have a class method in Class2 that I am passing prevMat1 from Class1 to. I need the method within Class2 to update the value of prevMat1 and that new value be reflected in Class1. I am currently calling this method like this:

[Class2 doSomething:self.prevMat1];

Within Class2 I am handling this object under the name prevMat2. This is the function:

@implementation Class2

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

@end

The way this is currently constructed, will self.prevMat1 in Class1 be updated with the new value assigned to prevMat2 in Class2? I fear that it may not be working the way I intend it to since I am not sending a pointer, but the object itself (I think).

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

单身狗的梦 2024-12-16 20:06:06

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

(希望您没有保留 prevMat1。)

If prevMat1 is declared as Something** then you're not sending an object when you use it as a parm, you're sending the address of pointer.

(Hopefully you're not retaining prevMat1.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文