将类变量指针传递给 Objective C 中的非类方法
我有两个相互通信的类(每个类中的进程都依赖于另一个类中的几个对象)。在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果 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.)