我正在为 iPad 编写代码。我有一个我定义的点结构:
typedef struct __Point32_t
{
int32_t x;
int32_t y;
}Point32_t;
这是我从 Objective-C 方法接收结构的代码:
Point32_t ModalityPan = [self ReadPoint];
这是方法:
-(Point32_t)ReadPoint
{
Point32_t P;
P.x = [self ReadInt];
P.y = [self ReadInt];
return P;
}
将返回值分配给结构会在编译时产生错误。该错误声称我的初始化程序无效。如果我将作业更改为:
Point32_t * ModalityPan = [self ReadPoint];
错误消失了。所以我想知道在Objective-C中实际传回的是什么。我搜索了许多帖子,其中一些是在 SO 上的,我的印象是结构在 Obj-C 中的方法之间传递和返回,而无需引用结构(例如,我可以按值传递)。
谁能解释这里发生了什么?什么回来了,参考还是结构?如果是结构,为什么我需要将引用指定为分配给的变量类型?