[英]How do I pass (by value) a struct in Objective-C?
這個讓我發瘋了! 我有一個結構:
typedef struct{
int a;
}myStruct;
然后我有:
myStruct tempStruct;
我試圖將結構傳遞給一個類方法,其實現是:
- (void) myFunc:(struct myStruct)oneOfMyStructs{};
我這樣稱呼方法:
[myClass myFunc:(struct myStruct)tempStruct];
編譯器抱怨“轉換為請求的非標量類型”。 我想要做的就是將結構傳遞給類方法,但語法讓我有點困惑。 我是Objective-C的新手。 如果你能看到我出錯的地方,請告訴我。 我也無法通過引用傳遞,所以如果你可以幫我解決這個問題,那就太棒了!
謝謝!
由於你有把typedef
-ed到myStruct
,你不需要(實際上不能)在函數簽名或調用中包含struct
關鍵字:
typedef struct tag_myStruct
{
int a;
}
myStruct;
- (void) myFunc:(myStruct) x {}
[myClass myFunc:tmpStruct];
應該足夠了。 (比較所有那些采用像NSRect
這樣的Cocoa函數。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.