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

标签 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 的新手。如果您能看到我哪里出错了,请告诉我。我也无法通过引用传递,所以如果你能帮我解决这个问题,那就太好了!

谢谢!

最佳答案

因为您已经将 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/

相关文章:

objective-c - 加载纹理时动画屏幕

ios - 在 Objective-C 中播放背景音乐

performance - 为什么通过引用传递结构不是常见的优化?

Java - HashMap 上的 containsKey() 返回 null - 它是否检查确切的对象而不仅仅是匹配的键?

javascript - 按值将参数传递给 onClick 函数

objective-c - 通过 iOS 的 Facebook 实例显示用户的个人资料名称和图像

ios - 广告另一个iOS设备后未调用didDiscoverPeripheral

objective-c - 可以在 c 结构中使用 CATextLayer 吗?

c - 在 C90 中将位字段和其他数据类型作为单个结构中的字段是不好的做法吗?

java - 如果Java仅是按值传递,我可以在形式参数中强制使用final修饰符吗?