2014-01-24 37 views
0

我在問這個問題是兩個問題,因爲我不認爲我可以問問其中一個。如何在自己的文件中定義Objective-C中的c結構並將結構作爲參數傳遞

在我的申請,我有很多的前綴爲「ND」的東西意義N維的,我有一個看起來像這樣在我NDVector類中的方法:

angleAtIntersectionWith: (NDVector *) vec 
    inPlaneFirstAxis: (NSUInteger) a1 secondAxis: (NSUInteger) a2 

如果」不知道,這種方法應該是在一個平面上找到兩個矢量之間的角度,這意味着它們只有兩個分量,它們由a1和a2索引。所以,例如。 vec1 angleAtIntersectionWith: vec2 inPlanFirstAxis: 0 secondAxis: 2將在它們的0索引元素和2索引元素(X和Z分量)處找到vec1vec2之間的角度。

我希望簡化這種方法,使它看起來像這樣:

angleAtIntersectionWith: (NDVector *) vec inPlane: (struct NDPlane *) plane 

凡NDPlane應該是這樣的結構:

struct NDPlane{ 
    NSUInteger a1;  
    NSUInteger a2; 
}; 

就是這樣,這一切都應該需要。沒有方法或任何東西。

我想將NDPlane保存在自己的文件中,那麼我該怎麼做?我做一個簡單的C頭文件嗎?如果是這樣,我是否正確地傳遞這個結構?

回答

1

是的,只需創建一個聲明結構的簡單.h文件即可。然後導入.h任何你需要它的地方。

但是,您不想在參數中使用指針。 C結構體按值傳遞,而不是引用。就像原始類型一樣。

我也建議你輸入結構,所以你不需要在你使用的地方使用structNDPlane

+0

我有[後續問題](http://stackoverflow.com/questions/21343553/how-should-i-name-a-header-file-designed-for-one-structure) – michaelsnowden

相關問題