Нет Intellisense в библиотеке привязок Xamarin iOS

Я пытаюсь создать библиотеку привязки, но у меня нет поддержки Intellisense в Visual Studio 2013. Мой компьютер с Windows подключен к MacOS 10 (El Capitan) с последней версией Xamarin Studio и даже последней версией XCode 8 ( Не знаю, нужно ли это)

Я не знаю, отсутствуют ли какие-либо ссылки. Я пытаюсь добавить поддержку вспомогательной библиотеки для iOS под названием «libdtdev.a» и соответствующий заголовок «DTDevices.h». Хотя VS успешно создает проект, я не могу использовать библиотеку в другом проекте Xamarin.iOS. В следующем коде синтаксис «BaseType», «NSObject» и «Export» неизвестен.

using System;

using ObjCRuntime;
using Foundation;
using UIKit;

namespace LineaProSDK
{
    [BaseType(typeof(NSObject))]
    interface DTDevices 
    {

        [Export("sharedDevice")]
        DTDevices sharedDevice();
    } 
}

Вот как Intellisense отображает доступные параметры:

введите здесь описание изображения

Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно? Я пропустил некоторые ссылки? Это все ссылки на Mono, которые я установил в своем клиенте Windows, но по умолчанию выбран только «Xamarin.iOS»:

Это единственные ссылки на Mono, которые я могу добавить

Я следовал руководству в Пошаговое руководство: привязка цели iOS -C Библиотека


person Gerrit Horeis    schedule 19.09.2016    source источник


Ответы (1)


Xamarin не предлагает IntelliSense для такого сценария. Было бы неплохо зарегистрировать ошибку, чтобы команда Xamarin могла ее исправить.

Что касается привязок iOS и ApiDefinition, предлагаемый способ — использовать инструмент Sharpie, который может генерировать ApiDefinition из файла заголовка .h (который, как вы упомянули, у вас есть). Таким образом, вам не нужно писать код самостоятельно и не нужен IntelliSense.

https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/walkthrough/#Using_Objective_Sharpie

Отличный пример прямо там

sharpie bind -output DTDevices -namespace DTDevices -sdk iphoneos8.1 path-to-DTDevices.h -unified

Убедитесь, что вы используете допустимое значение для параметра -sdk.

person Alex Sorokoletov    schedule 05.10.2016