Смешивание языков - Python и Objective-C
Я знаю, что Objective-C++ может существовать, потому что Objective-C и C++ имеют общую основу в C. Но как Objective-C может сосуществовать с Python? Я знаю, что это должно быть возможно, потому что wxPython использует Какао для рисования интерфейсов.
Я пишу движок карточных игр для OS X. Он сможет играть более чем в одну игру (Klondike, Spider, Free Cell, возможно, даже Hearts или Poker). Он будет работать с Game Center, поэтому мне нужно иметь доступную инфраструктуру Cocoa, но я бы хотел написать API Python, чтобы я мог писать сами игры на Python (потому что это проще в использовании и более динамично). Как бы я реализовал подобную смесь языков в своем приложении?
2 ответа
Я не эксперт по какао, но я думаю, что вы неправильно поняли смысл его использования. Какао - это просто библиотека, которая экспортирует некоторые функции. Его можно использовать из всего, что способно понять сигнатуры функций. Это не означает, что эта вещь должна быть совместима с объективом. Это просто означает, что он должен быть способен понимать соглашение о вызовах.
Однако я совершенно уверен, что Python может работать как на стандартном C, так и на ObjC (поскольку IIRC - это расширение первого), поэтому я не понимаю, почему невозможно сделать привязки Cocoa для Python... Кажется, Apple поддержать его https://developer.apple.com/technologies/mac/cocoa.html
Динамическая среда выполнения Objective-C похожа на многие современные языки сценариев, что упрощает сопоставление функций Cocoa с другими языками с помощью Cocoa Bridge. С помощью Cocoa Bridge разработчики могут создавать первоклассные приложения Mac OS X, используя AppleScript, Ruby и Python.
Итак, ваше следующее ключевое слово для проверки: Cocoa Bridge и, может быть, https://developer.apple.com/cocoa/pyobjc.html тоже?