【问题标题】:Next step to Make Binding for embedded framework for Xamarin.iOS?为 Xamarin.iOS 的嵌入式框架进行绑定的下一步?
【发布时间】:2016-12-20 23:50:18
【问题描述】:

我正在尝试在 Xamarin iOS 上使用来自 BLE 芯片弯曲机(北欧)的本机 iOS 框架。 这个框架(iOS Native - swift):https://github.com/NordicSemiconductor/IOS-DFU-Library/tree/master/documentation

  1. 我用那些 iOS 库做了一个胖框架。我看了这个文档。 https://developer.xamarin.com/guides/ios/advanced_topics/embedded_frameworks/

  2. 我将它作为本机框架导入 Xamarin.iOS 项目。我想用它。

以下代码来自我在制作 iOS 原生应用程序时使用的代码。我将不得不在 Xamarin 上使用它。

(我的应用程序代码的一部分(objc 基础) - 使用该库)

DFUServiceInitiator *initiator = [[DFUServiceInitiator alloc] initWithCentralManager: [DeviceManager getInstance].central target:[DeviceManager getInstance].connectedPeripheral];
[initiator withFirmwareFile:nil];
initiator.forceDfu = [[[NSUserDefaults standardUserDefaults] valueForKey:@"dfu_force_dfu"] boolValue];
initiator.packetReceiptNotificationParameter = [[[NSUserDefaults standardUserDefaults] valueForKey:@"dfu_number_of_packets"] intValue];
initiator.logger = self;
initiator.delegate = self;
initiator.progressDelegate = self;
// initiator.peripheralSelector = ... // the default selector is used

DFUServiceController *controller = [initiator start];
  1. 所以在 Xamarin.iOS 项目中。 我将使用我刚刚导入的框架。我尝试声明“DFUServiceInitiator”类。但没有任何效果,但会给出“找不到”错误。也许我还有很多事情要做。是的,这并不容易。

下一步是“绑定(包装)框架到 c#”?请您指导一下好吗?

接下来我应该查看这份文件吗? https://developer.xamarin.com/guides/ios/advanced_topics/native_interop/

还是这个? https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/walkthrough/

谢谢。

【问题讨论】:

    标签: xamarin binding frameworks xamarin.ios


    【解决方案1】:

    您不能简单地在 Xamarin 项目中包含一个 Objective-C 或 Swift 库并通过复制 Objective-C 或 Swif 代码来使用它。您需要创建一个绑定项目来创建包装类以获取 .NET-api。这就是 Xamarin 绑定项目发挥作用的地方。

    因此,您应该使用https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/walkthrough/ 并了解如何为原生库构建绑定。取决于图书馆,这并不难。

    【讨论】:

    • 你好龙舌兰酒。感谢您回答我的问题。根据该文档的 OVERVIEW,他说:“在第一个和第二个场景中,已经有一个预编译的 CocoaTouch 静态库,所以在本文中,我们将重点关注第三种场景。”我的场景是第二个“作为预编译框架”。然后我将不得不跳到文档的中间,“创建一个 Xamarin.iOS 绑定项目”,对吗?
    • 我刚刚使用了Objective Sharpie 来制作一个包装类。但是当我构建项目时,它给出的错误是“没有指定 API 定义文件”。这是什么意思?
    • 我做了一个新项目,我通过了那部分。我正在修复错误。
    • 最后,我成功构建了 Xamarin 库项目。现在我将尝试在我的项目中使用它
    • 很遗憾目前不支持 Swift。
    猜你喜欢
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 2022-07-28
    • 2021-05-27
    • 2015-08-26
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多