我将我的项目从经典转换为统一,我的api定义文件似乎不再为我正确地桥接 - 它看起来像第一次调用我失败因为它找不到(至少那是我如何解释这个堆栈跟踪):
22 FareInspector 0x00392931 mono_handle_native_sigsegv (mini-exceptions.c:2377)
23 FareInspector 0x0039b165 mono_sigsegv_signal_handler (mini-runtime.c:2875)
24 libsystem_platform.dylib 0x1e62326d _sigtramp + 25
25 libobjc.A.dylib 0x1e036703 lookUpImpOrForward + 159
26 libobjc.A.dylib 0x1e036703 lookUpImpOrForward + 159
27 libobjc.A.dylib 0x1e036661 _class_lookupMethodAndLoadCache3 + 27
28 libobjc.A.dylib 0x1e03c96f _objc_msgSend_uncached + 15
29 FareInspector 0x0002df2b -[xValidator informUIRegardingReadyState] (xValidator.m:458)
这是不起作用的ApiDefinition:
namespace XValidator {
[BaseType(typeof(NSObject))]
[Model]
[Protocol]
public partial interface ValidatorDelegate {
[Export("validatorReadyToUse:")]
void ValidatorReadyToUse(string sState);
}
应该调用的方法签名: namespace FareInspector {
public class ValidatorDelegateHandler : ValidatorDelegate {
public override void ValidatorReadyToUse(string sState) {
我验证了我正在包装的XValidator库没有更改此方法的签名 - 它仍然为validatorReadyToUse传递一个NSString参数。
我是否正确地解释了这一点?我还缺少一个额外的经典统一转换步骤吗?或者我还能做些什么来找出失败的原因?