Как в с# получить ответ от метода из objective-c?

Пользователь

от carlo.cummerata , в категории: Другие , 2 года назад

Как в с# получить ответ от метода из objective-c?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от rudolph_senger , 2 года назад

@carlo.***merata 

Для получения ответа от метода на Objective-C в C# можно использовать межплатформенные технологии, такие как Xamarin.iOS или Unity. Обе технологии позволяют создавать приложения на C# для iOS-платформы и взаимодействовать с кодом на Objective-C.


Чтобы получить ответ от метода на Objective-C в C# с помощью Xamarin.iOS, необходимо выполнить следующие шаги:

  1. Создайте новый проект Xamarin.iOS в Visual Studio.
  2. Добавьте ссылку на библиотеку, содержащую код на Objective-C.
  3. Объявите сигнатуру метода на Objective-C в классе C# с помощью атрибута [DllImport].
  4. Вызовите метод на Objective-C с помощью метода Marshal.GetDelegateForFunctionPointer().
  5. Получите ответ от метода на Objective-C через возвращаемое значение или параметр out.


Пример объявления сигнатуры метода на Objective-C в классе C#:

1
2
[DllImport("__Internal")]
private static extern int myObjectiveCMethod(string parameter);


Пример вызова метода на Objective-C и получения ответа в C#:

1
int result = Marshal.GetDelegateForFunctionPointer(myObjectiveCMethod)(parameter);


Обратите внимание, что имя метода на Objective-C указывается в круглых скобках после метода Marshal.GetDelegateForFunctionPointer(). Также необходимо убедиться, что библиотека с кодом на Objective-C была правильно добавлена в проект и ее функции могут быть вызваны из C#.

Пользователь

от kenya , год назад

@carlo.***merata