我将此作为两个问题提出,因为我认为我不能单独提出一个问题。
在我的应用程序中,我有很多以“ND”为前缀的东西,意思是 n 维,并且我在我的 NDVector
类中有一个看起来像这样的方法:
angleAtIntersectionWith: (NDVector *) vec
inPlaneFirstAxis: (NSUInteger) a1 secondAxis: (NSUInteger) a2
如果您想知道,此方法应该仅在一个平面上找到两个 vector 之间的角度,也就是说仅通过它们的两个分量,分别由 a1 和 a2 索引。所以,例如。 vec1 angleAtIntersectionWith: vec2 inPlanFirstAxis: 0 secondAxis: 2
将找到 vec1
和 vec2
在它们的 0 索引元素和 2 索引元素(X和 Z 分量)。
我想简化这个方法,让它看起来像这样:
angleAtIntersectionWith: (NDVector *) vec inPlane: (struct NDPlane *) plane
NDPlane应该是这样的结构:
struct NDPlane{
NSUInteger a1;
NSUInteger a2;
};
就是这样,这就是它所需要的。没有方法或任何东西。
我想将 NDPlane 保存在自己的文件中,那么我该怎么做呢?我做一个简单的c头文件吗?如果是这样,我是否正确地将其作为结构传递?
最佳答案
是的,只需创建一个声明结构的简单 .h 文件。然后在需要的地方导入 .h。
但是,您不需要参数中的指针。 C 结构按值传递,而不是引用。就像原始类型一样。
我还建议您对结构进行 typedef,这样您就不需要在使用 NDPlane
的任何地方都使用 struct
。
关于objective-c - 如何在 Objective-C 中在自己的文件中定义一个 c 结构并将该结构作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21343135/