Objective-C bindings
Xamarin has developed a sophisticated system for calling native Objective-C libraries from C# in iOS projects. The core of Xamarin.iOS
uses this same technology to call native Apple APIs in UIKit, CoreGraphics, and other iOS frameworks. Developers can create iOS binding projects to expose Objective-C classes and methods to C# using simple interfaces and attributes.
To aid in creating Objective-C bindings, Xamarin has created a small tool named Objective Sharpie that can process Objective-C header files for you and export the valid C# definitions to add to a binding project. This tool is a great starting point for most bindings and will get about 75% of your binding project working in most cases. You will want to hand-edit and fine-tune things to be more C#-friendly most of the time.
Tip
Note that iOS binding projects can be created in Visual Studio; however, Objective Sharpie is a command-line tool for OS X. It leverages tooling included with Xcode, so iOS binding development...