MonoTouch, связывающий проблемы библиотеки objc (не может быть получен из связанного класса objc) - PullRequest
1 голос
/ 20 марта 2012

В настоящее время я пытаюсь создать библиотеку привязок monotouch для Sparrow 1.3.Пока все работает отлично, за исключением того, что я не могу наследовать от связанного класса objc, например:

public class GameStage : SPStage {
    public GameStage() : base() { }
    public GameStage(float width, float height) : base(width, height) { }
}

SPStage - это класс, определенный в libSparrow.a.

SPStageбыть привязанным правильно, так как в моем примере проекта monotouch работает следующий код:

private SPView sparrowView;
...     
RectangleF frame = UIScreen.MainScreen.Bounds;
SPStage stage = new SPStage(frame.Size.Width, frame.Size.Height);
stage.Color = 0x0000ff;
sparrowView.Stage = stage;

Но если я попробую то же самое с GameStage:

GameStage game = new GameStage(frame.Size.Width, frame.Size.Height);
game.Color = 0x0000ff;
sparrowView.Stage = game;                       

Приложение аварийно завершает работу без ошибокили трассировка стека.Ожидаемый результат должен быть синим экраном.

Чтобы воспроизвести ошибку, я проверил код привязки и пример для git hub.Вы можете клонировать его отсюда:

git@github.com:goosefx/sparrow-monotouch.git

Я был бы ДЕЙСТВИТЕЛЬНО рад, если бы кто-нибудь мог мне помочь.Я действительно застрял с этой проблемой.

Спасибо!

ОБНОВЛЕНИЕ:

Впервые я увидел похожий вопрос после того, как написал этот вопрос: Производный класс Monotouch из нативного класса

Удаление / e из списка аргументов mtouch решило мою проблему.К сожалению, MonoDevelop не поддерживает подавление аргумента / e.

К сожалению, я не могу ответить на свой вопрос до 8 часов.

1 Ответ

1 голос
/ 21 марта 2012

Проблема в том, что переключатель / e MonoDevelop переходит в режим btouch. Это нельзя отключить через пользовательский интерфейс. В настоящее время помогает только компиляция manuel. Подробности здесь: https://bugzilla.xamarin.com/show_bug.cgi?id=3234

...