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/

相关文章:

ios - UITableViewCell 框架仅在滚动后更新

c - 从文本文件中读取并放入结构

c# - 在结构中更改各种值(它们有多不可变?)

c++ - 编程风格 : object with passages by references or value? (c++)

ios - 使用 Autolayout iOS 的最高边距

ios - 检查 iOS 8 自定义键盘中的输入文本是否为空

objective-c - 一个奇怪的 C 字符串和 NSString 比较问题

c++ - 结构原型(prototype)?

java - Java 是 "pass-by-reference"还是 "pass-by-value"?

C 编程 - 传递引用