从 Unity 到 iOS 调用自定义类型的方法时出现 EXC_BAD_ACCESS

问题描述 投票:0回答:1

我尝试将 Unity 构建到 iOS。

我有一个从 Unity 到 iOS 的方法调用,

当我将鼠标悬停在变量上时,我可以看到详细信息,但是当我调用该变量时,它会抛出 EXC_BAD_ACCESS。

为什么?有什么建议吗

这是代码:

团结号召:

// call
saveLoginConfig(config);


[DllImport("__Internal")]
private static extern void saveLoginConfig(LinLoginConfig config);

统一对象

    [Serializable]
    public struct LinLoginConfig
    {
        public bool haveEmail;
    }

ios 桥

extern void saveLoginConfig(const LinLoginConfig &config) {
    NSLog(@"saveLoginConfig haveEmail0"); // line1
    NSLog(@"saveLoginConfig haveEmail1:%@", &config); // line2
}

ios 对象

@interface LinLoginConfig : NSObject

@property(nonatomic, assign) bool haveEmail;

@end

断点处: 我可以看到细节。

抛出:

为什么会这样?帮忙~

替代计划

这可能不是最好的解决方案,但它有效:

只需在

Objective-C++
文件中分配自定义类型,而不是在
Objective-C
文件中。

像这样:

extern "C" {

class CustomType {
public:
    bool haveEmail;
    ...
};

}

而且它有效。

ios unity-game-engine cross-platform exc-bad-access
1个回答
0
投票

替代计划

这可能不是最好的解决方案,但它有效:

只需在

Objective-C++
文件中分配自定义类型,而不是在
Objective-C
文件中。

像这样:

extern "C" {

class CustomType {
public:
    bool haveEmail;
    ...
};

}

而且它有效。

© www.soinside.com 2019 - 2024. All rights reserved.