由于其保护级别,ExportAttribute()无法访问

时间:2014-12-02 16:22:55

标签: xamarin.ios xamarin

我正在转换我们的源代码以使用Xamarin.iOS统一api(相当痛苦...... Xamarin)。目前我有一堆这样的错误:

由于其保护级别

ExportAttribute()无法访问

我知道不再有一个公共的无参数构造函数 - 所以我应该提供什么样的ExportAttribute构造函数来使它工作 - 我不是这段代码的原作者所以我不确定该做什么这里。我有这样的方法:

  [Foundation.Export()]
  private void CameraSnapshotComplete()
  {
  }

在tihs案例中,我将什么传递给ExportAttribute构造函数?此方法正在发送到AnimationDidStop方法,如下所示:

  UIView.SetAnimationDidStopSelector(new ObjCRuntime.Selector("CameraSnapshotComplete"));

所以我只是通过" CameraSnapshotComplete"到构造函数?我有大量的这些要替换 - 所以在我开始这样做之前想要一些反馈并发现我做错了。

1 个答案:

答案 0 :(得分:4)

如果选择器名为CameraSnapshotComplete,则[Export]属性必须使用相同的名称。如果你这样称呼它,请点击:

UIView.SetAnimationDidStopSelector(new ObjCRuntime.Selector("CameraSnapshotComplete"));

然后该方法应该像:

一样导出
[Foundation.Export("CameraSnapshotComplete")]
private void CameraSnapshotComplete()
{
}

在许多情况下,使用选择器有API替代方案,这将使代码更强类型化(并避免难以调试的潜在错别字)。