簡體   English   中英

如何在Objective-C中傳遞(按值)結構?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM