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