2012-03-26 3 views
3

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

ответ

3

Очень просто.

File-> New Project> MonoTouch-> MonoTouch Связывание проекта

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

Добавьте все файлы заголовков, которые они предоставляют, с параметром Build 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, такие как босс. Это то, что я расскажу о новом прокате в моем отделе.

+0

Я загрузил SDK OpenFeint и могу его построить с помощью xcode. К сожалению, на моем жестком диске нет файла * .a. Любые указатели на то, как это получить? – Thijs

+0

Я вижу файл 'BuildUniversalBinary.sh' в процессе загрузки. Можете ли вы запустить это и посмотреть, что он делает? Я сейчас на Windows, я не могу. – jonathanpeppers

+0

Я пытаюсь запустить файл, но он дает мне следующую ошибку: builduniversalbinary.sh: строка 6: КОНФИГУРАЦИЯ: несвязанная переменная. Я пытаюсь выяснить, как это исправить. Позвольте мне просто подтвердить, что я должен использовать файл следующим образом в терминале: «sh BuildUniversalBinary.sh» – Thijs

1

В дополнении к @ Джонатану отличных ответов ...

Есть несколько привязок проекты доступны на GitHub, например, от Xamarin, что может дать вам подсказки, если вы не знаете, как преобразовать некоторые объекты Objective-C в C#. Реальные примеры часто очень полезны по теории.

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

+0

Спасибо, большое предложение! Я бы проголосовал за оба ответа, но, увы, у меня нет необходимой репутации. – Thijs

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