Как связать тип массива C в библиотеке target-c с помощью Objective Sharpie?
Метод, который мне нужно связать, имеет аргумент в массиве примитивов, например:
(bool)isRectangle:(const CGPoint[4])corners;
Как я связываю const CGPoint[4]
Тип с типом C#?
Примечание: используя Sharpie, результат ниже
[Static]
[Export("isRectangle:")]
void IsRectangle(CGPoint[] corners);
и когда я его построил, я получил ошибку
cannot convert from 'CoreGraphics.CGPoint[]' to 'Foundation.NSObject'
1 ответ
Определите const CGPoint[4]
как структура в вашем StructsAndEnums.cs
:
[StructLayout(LayoutKind.Sequential)]
public struct Rectangle
{
public CGPoint leftTop;
public CGPoint rightTop;
public CGPoint leftBotton;
public CGPoint rightBotton;
}
Ваше определение становится:
//(bool)isRectangle:(const CGPoint[4])corners;
[Export("isRectangle:")]
bool IsRectangle(Rectangle corners);