Using the OSX Cocoa-APIs from Mathematica via Link-Technology

General Tech Technology & Software 2 years ago

0 1 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Technology & Software related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (1)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

 

I'd like to access Cocoa-API's (Foundation, AppKit) from Mathematica and have researched the following ways:

  1. CocoaLink: A deprecated Package by Rob Schlofield from 2009, which is still available on GitHub but will not compile out of the box due to the introduced changes in the ObjC-Runtime made at that time and around 2010. I got it to work, but not for all Types. I contacted Rob if he will update CocoaLink but he told me that the effort would not justify the usefulness ... unfortunately.

  2. MonoObjC: A Mono/.NET package which can be installed and used after Mono has been installed. Mono allows one to use .NETLink and invoke almost all .NET functions of the 4.0 Framework.

I have tried:

Needs["NETLink`"];

monobjc = LoadNETAssembly["Monobjc"];
foundation = LoadNETAssembly["Monobjc.Foundation"];
appkit = LoadNETAssembly["Monobjc.AppKit"];

Then I tried to load and instantiate a NSString but it failed with Messages telling me that the Bridge to ObjC is not available.

nsstring = LoadNETType["Monobjc.Foundation.NSString"];
sstr = NETNew[nsstring]

NET::netexcptn: A .NET exception occurred: System.TypeInitializationException: An exception was thrown by the type initializer for Monobjc.Foundation.NSString ---> System.TypeInitializationException: An exception was thrown by the type initializer for Monobjc.ObjectiveCRuntime ---> System.EntryPointNotFoundException: monobjc_install_bridge .....

I am not sure if there is more to be done to initialize .NETLink when working with other external mono packages.

0 views
0 shares

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.