如何在Objective-C中传递(按值)结构?

时间:2010-05-01 22:43:44

标签: objective-c struct pass-by-value

这个让我疯了!我有一个结构:

typedef struct{
  int a;
}myStruct;

然后我有:

myStruct tempStruct;

我试图将结构传递给一个类方法,其实现是:

- (void) myFunc:(struct myStruct)oneOfMyStructs{};

我这样称呼方法:

[myClass myFunc:(struct myStruct)tempStruct];

编译器抱怨“转换为请求的非标量类型”。我想要做的就是将结构传递给类方法,但语法让我有点困惑。我是Objective-C的新手。如果你能看到我出错的地方,请告诉我。我也无法通过引用传递,所以如果你可以帮助我,那就太棒了!

谢谢!

1 个答案:

答案 0 :(得分:3)

由于您typedef将其编辑为myStruct,因此您无需(实际上必须)在函数签名或调用中包含struct关键字:< / p>

typedef struct tag_myStruct
{
    int a;
}
myStruct;

- (void) myFunc:(myStruct) x {}

[myClass myFunc:tmpStruct];

应该足够了。 (比较所有那些采用NSRect s之类的Cocoa函数。)