这个让我发疯了!我有一个结构:
typedef struct{
int a;
}myStruct;
然后我有:
myStruct tempStruct;
我试图将结构传递给一个类方法,其实现是:
- (void) myFunc:(struct myStruct)oneOfMyStructs{};
我这样调用方法:
[myClass myFunc:(struct myStruct)tempStruct];
编译器提示“请求转换为非标量类型”。我只想将结构传递给类方法,但语法让我有点困惑。我是 Objective-C 的新手。如果您能看到我哪里出错了,请告诉我。我也无法通过引用传递,所以如果你能帮我解决这个问题,那就太好了!
谢谢!
最佳答案
因为您已经将 typedef
编辑为 myStruct
,所以您不需要(确实不能)包含 struct
关键字在函数签名或调用中:
typedef struct tag_myStruct
{
int a;
}
myStruct;
- (void) myFunc:(myStruct) x {}
[myClass myFunc:tmpStruct];
应该足够了。 (比较所有采用 NSRect
之类的 Cocoa 函数。)
关于objective-c - 我如何在 Objective-C 中传递(按值)结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2751792/