【问题标题】:No Intellisense in Xamarin iOS Bindings LibraryXamarin iOS 绑定库中没有智能感知
【发布时间】:2016-09-19 06:52:26
【问题描述】:

我正在尝试创建一个绑定库,但我在 Visual Studio 2013 中没有 Intellisense 支持。我的 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 显示可用选项的方式:

谁能告诉我我做错了什么?我错过了一些参考吗?这些都是我在 Windows 客户端上安装的所有 Mono 引用,但默认情况下只选择了“Xamarin.iOS”:

我按照Walkthrough: Binding an iOS Objective-C Library的教程进行操作

【问题讨论】:

    标签: visual-studio-2013 xamarin.ios-binding


    【解决方案1】:

    Xamarin 不为这种情况提供 IntelliSense。实际为此提交错误是一个好主意,以便 Xamarin 团队可以改进它。

    关于 iOS 绑定和 ApiDefinition,建议的方法是使用 Sharpie 工具,它可以从 .h 头文件(你提到你有)生成 ApiDefinition。这样你就不需要自己写代码,也不需要 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 选项的值有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      • 2016-10-26
      • 2020-10-02
      相关资源
      最近更新 更多