Monotouch унаследовал класс от нативного класса - PullRequest
1 голос
/ 04 февраля 2012

Я пытаюсь получить собственный класс, скомпилированный из собственной библиотеки iCarousel (использовал метод LinkWith, описанный в в этом примере ).При использовании сгенерированной привязки все работает отлично:

iCarousel carousel = new iCarousel( new RectangleF(0, 0, 300, 300) );

Но при попытке создать этот производный класс:

public class Carousel2 : iCarousel
{

    public Carousel2( RectangleF rect ) : base(rect)
    {
            Console.WriteLine("do something");
    }

}

и использовать его так:

Carousel2 carousel = new Carousel2( new RectangleF(0, 0, 300, 300) );

Компилируется, но перестает работать, без ошибок.Я что-то упускаю?

ОБНОВЛЕНИЕ: я поместил заголовок target-c и исходный код ApiDefinition.cs здесь: http://dantes -andreea.blogspot.com / 2012/02/icarousel-monotouch-binding-code.html

1 Ответ

2 голосов
/ 06 февраля 2012

Я думаю, вам нужно передать -e для btouch при генерации привязок, иначе они не будут подклассифицированы.

По умолчанию btouch не генерирует подклассифицируемые типы, потому что они немного медленнее.

Обновление

Я ошибся, ключ -e должен не передаваться в btouch для генерации подклассифицируемых привязок. К сожалению, этот переключатель пропущен безоговорочно. отчет об ошибке был подан.

Вероятно, вы можете обойти это, вручную запустив команду btouch после того, как MonoDevelop соберет проект (вы создаете проект bindings, с & p запускаете командную строку btouch и удаляете ключ -e). Тогда вам также придется запускать любые последующие шаги вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...