How to bind a constant structure?

AgasAgas USMember
edited April 2016 in Xamarin.iOS

Hello, I have a lib to bind which has a constant structure like this:

extern const MAMapRect MAMapRectZero;

The MAMapRect is a structure which is generated as:

[StructLayout (LayoutKind.Sequential)]
public struct MAMapRect
{
public MAMapPoint origin;
public MAMapSize size;
}

The sharpie tool generated such code for me:

[Static]
partial interface Constants
{
// extern const MAMapRect MAMapRectZero;
[Field ("MAMapRectZero", "__Internal")]
MAMapRect MAMapRectZero { get; }
}

The compiler gave me this error:

BTOUCH: error BI1014: btouch: Unsupported type for Fields: MAMapRect
Task "BTouch" execution -- FAILED

According to your binding docs, I find that the [Field] attribute only supports these types:

NSString references (read-only properties only)
NSArray references (read-only properties only)
32-bit ints (System.Int32)
64-bit ints (System.Int64)
32-bit floats (System.Single)
64-bit floats (System.Double)
System.Drawing.SizeF
CGSize

So in this scenario, how could I bind this constant structure? Please help, thanks!

Sign In or Register to comment.