3

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

typedef struct{
  int a;
}myStruct;

然后我有:

myStruct tempStruct;

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

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

我这样称呼该方法:

[myClass myFunc:(struct myStruct)tempStruct];

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

谢谢!

4

1 回答 1

3

由于您已将typedef其编辑为myStruct,因此您不需要(实际上不能)struct在函数签名或调用中包含关键字:

typedef struct tag_myStruct
{
    int a;
}
myStruct;

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

[myClass myFunc:tmpStruct];

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

于 2010-05-01T22:50:37.550 回答