我正在转换我们的源代码以使用Xamarin.iOS统一api(相当痛苦...... Xamarin)。目前我有一堆这样的错误:
由于其保护级别,ExportAttribute()无法访问
我知道不再有一个公共的无参数构造函数 - 所以我应该提供什么样的ExportAttribute构造函数来使它工作 - 我不是这段代码的原作者所以我不确定该做什么这里。我有这样的方法:
[Foundation.Export()]
private void CameraSnapshotComplete()
{
}
在tihs案例中,我将什么传递给ExportAttribute构造函数?此方法正在发送到AnimationDidStop方法,如下所示:
UIView.SetAnimationDidStopSelector(new ObjCRuntime.Selector("CameraSnapshotComplete"));
所以我只是通过" CameraSnapshotComplete"到构造函数?我有大量的这些要替换 - 所以在我开始这样做之前想要一些反馈并发现我做错了。
答案 0 :(得分:4)
如果选择器名为CameraSnapshotComplete
,则[Export]
属性必须使用相同的名称。如果你这样称呼它,请点击:
UIView.SetAnimationDidStopSelector(new ObjCRuntime.Selector("CameraSnapshotComplete"));
然后该方法应该像:
一样导出[Foundation.Export("CameraSnapshotComplete")]
private void CameraSnapshotComplete()
{
}
在许多情况下,使用选择器有API替代方案,这将使代码更强类型化(并避免难以调试的潜在错别字)。