2014-12-02 2 views
2

Я конвертирую наш исходный код, чтобы использовать унифицированный api Xamarin.iOS (довольно болезненно ... Xamarin). В настоящее время у меня есть куча ошибок этого аромата:ExportAttribute() недоступен из-за уровня защиты

ExportAttribute() недоступно из-за его уровень защиты

Я не понимаю, что больше не является конструктор открытого параметра меньше - так, что я должен предоставить ExportAttribute, чтобы заставить это работать - я не являюсь оригинальным автором этого кода, поэтому я не совсем уверен, что делать здесь. У меня есть метод вроде этого:

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

Что я могу передать конструктору ExportAttribute в случае tihs? Этот метод направляется к методу AnimationDidStop так:

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

Так что я просто передать «CameraSnapshotComplete» в конструктор? У меня есть zillion из них для замены - так хотелось бы немного обратной связи, прежде чем я начну делать это и узнаю, что я делаю это неправильно.

ответ

4

Если селектор имеет имя CameraSnapshotComplete, то атрибут [Export] должен использовать одно и то же имя. IOW если вы называете это так:

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

то метод должен быть экспортированы как:

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

Во многих случаях есть API альтернатива использования селекторов, что сделает код более сильно типизированным (и избегать возможных опечаток, которые трудно отлаживать).

+0

Поймите, что есть «лучшие» способы сделать некоторые из этого. Но многие из этого кода возвращаются из дней MonoTouch и переписываются, это не вариант для нас прямо сейчас. В настоящее время у него есть полмиллиона строк для этого порта для нового унифицированного api. – user633077

+1

Я понимаю :-), но, как правило, я хочу, чтобы мои ответы были применимы ко всем, кто его прочитает (сегодня или через 2 года). – poupou

+0

Ярмарка - и правда! :-) – user633077

Смежные вопросы