如果我在头文件的struct
中定义一个Objective-C id
:
struct MyStruct {
id field;
};
struct MyStruct *_Nonnull myFunction(void);
然后I #include
将此标头放入桥接标头,然后try 从SWIFT端使用myFunction()
,它将返回OpaquePointer
.如果我try 直接返回MyStruct
,它将错误地指出myFunction
未定义.这仅在MyStruct
包含对象-C id
的情况下发生.
奇怪的是,如果我声明一个id
类型的普通变量,它可以很好地移植到SWIFT.
为什么SWIFT拒绝包含Objective-C id
的structs,我应该做些什么来规避这一点?