OpenFeint с MonoTouch

Я хочу использовать OpenFeint в проекте MonoTouch. У меня нет опыта в создании правильных привязок для использования сторонней библиотеки Objective-C с Mono. Чтение этой статьи на веб-сайте Xamarin больше не помогло мне. Кто-нибудь создал привязки, необходимые для использования OpenFeint с MonoTouch, или у кого-нибудь есть опыт создания привязок, которые мне нужны?

2 ответа

Это действительно легко.

Файл-> Новый проект->MonoTouch-> Проект привязки MonoTouch

Прежде всего добавьте библиотеку Objective-C (*.a файл), ее опция Build должна автоматически сказать Native Library,

Добавьте все файлы заголовков, которые они предоставляют, с опцией Build of None (это только для справки, чтобы помочь вам написать привязку).

Прочитайте заголовочные файлы и начните писать привязку в файле ApiDefinitions.cs:

  • использование [BaseType(typeof(NSObject))] если их класс не наследуется от чего-то другого
  • использование [Export("yourMethod:")] по методам
  • Обратите внимание на символы + и - на методах, + указывает на статический метод, используйте [Static] на вашем конце, чтобы указать, что
  • Если вы сталкиваетесь с классом делегата (тот, который вам нужно наследовать), добавьте [Model]иначе он выйдет как закрытый класс
  • Если вам нужно связать другие библиотеки для компиляции, измените атрибут [LinkWith] в файле designer.cs, который отображается под библиотекой *.a
  • Перечисления идут в другом файле *.cs (я забыл название)
  • #define MyConstant 1 - константы, подобные этим, должны указывать в классе, в каком заголовочном файле они находятся. Определите новый файл *.cs с классом как частичным. Вы также можете поместить дополнительный код C# в класс, если хотите
  • Преобразуйте NSTypes в соответствующий тип C#: NSString -> string и т. Д.
  • Не стесняйтесь переименовывать типы Obj-C, чтобы они не были такими глупыми. Я сталкивался со случайными префиксами для каждого метода, члена и т. Д.- удалял подобные вещи.
  • ПРОЧИТАЙТЕ ссылку, которую вы указали в своем вопросе
  • Когда все сказано и сделано, просто обратитесь к новой библиотеке (не используйте дополнительные параметры сборки в настройках проекта, вам больше не нужно это использовать)

В целом, это хорошая идея, просто сделать это самостоятельно, чтобы вам было удобно связывать библиотеки Obj-C как босс. Это то, что я бы сказал новый найм в моем отделе.

В дополнение к @Jonathan отличные ответы...

На github есть несколько проектов связывания, например, от Xamarin, которые могут дать вам подсказки, если вы не знаете, как преобразовать некоторые конструкции Objective-C в C#. Реальные примеры часто очень полезны в теории.

Если вас когда-нибудь заблокируют в определенном месте, не стесняйтесь задавать конкретные вопросы, либо здесь, либо в списке рассылки.

Другие вопросы по тегам