Я пытаюсь связать свойство, которое я знаю как (многомерное) NSArray
, содержащий NSArray
объекты, которые в свою очередь содержат экземпляры NSObject
. Я связала метод как таковой:Связывание многомерных массивов в Xamarin
[Export ("options")]
NSObject[][] Options { get; set; }
Когда я строю свои привязок я получаю следующие ошибки в сгенерированном классе для данной недвижимости.
Из сгенерированного вызова NSArray.FromNSObjects
:
(1) Argument `#1` cannot convert 'Foundation.NSObject[][]' expression to type 'Foundation.NSObject[]'.
(2) Error CS1502: The best overloaded method match for `Foundation.NSArray.FromNSObjects(params Foundation.NSObject[])' has some invalid arguments (CS1502)
Из сгенерированного вызова NSArray.ArrayFromHandle<Foundation.NSObject[]>
:
(1) Error CS0311: The type `Foundation.NSObject[]' cannot be used as type parameter `T' in the generic type or method `Foundation.NSArray.ArrayFromHandle<T>(System.IntPtr)'. There is no implicit reference conversion from `Foundation.NSObject[]' to `ObjCRuntime.INativeObject' (CS0311)
держать ссылаясь на неспособность компиляторов для преобразования между Foundation.NSObject[][]
и Foundation.NSObject[]
Ошибки. Я не понимаю, почему это будет проблемой, NSArray
является подклассом NSObject
, поэтому почему он не может обрабатывать измерение второго массива как NSObject
?
(я знаю, что есть альтернативы, такие как связующие параметры, как NSObject[]
, или просто NSObject
, но я предпочел бы быть как тип безопасной, насколько это возможно.)