c# - Xamarin.iOS 上的 Swift 框架 - 已抛出 Foundation.MonoTouchException

标签 c# swift binding xamarin.ios

Xamarin iOS 应用程序在运行 swift 框架时崩溃。

在我的 .framework - Swift 类中

import Foundation

@objc(Member)
open class Member: NSObject {

    @objc
    func getMemberID() -> String {
        return "Hii, This is member code .framework"
    }
}

我已经为 模拟器 iPhone7 构建了一个框架,并在 Visual studio Xamarin.iOS 上添加了 Native 框架

而且我已经为接口(interface)类手动编码。

using System;

using ObjCRuntime;
using Foundation;
using UIKit;

namespace CustomLibrary {

    [BaseType(typeof(NSObject))]
    interface Member
    {
        [Export("getMemberID")]
        string MemberID { get; }
    }
}

之后,我将绑定(bind)库的引用添加到 iOS App 项目。

enter image description here

在 ViewController 中,我导入了一个绑定(bind)库并分配了一个类并在日志中打印。

using System;
using UIKit;
using CustomLibrary;

namespace SwiftFrameworkApp
{
    public partial class ViewController : UIViewController
    {
        public ViewController(IntPtr handle) : base(handle)
        {
        }

        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            // Perform any additional setup after loading the view, typically from a nib.

            Member memberObj = new Member();
            System.Diagnostics.Debug.Print(memberObj.MemberID());
        }

        public override void DidReceiveMemoryWarning()
        {
            base.DidReceiveMemoryWarning();
            // Release any cached data, images, etc that aren't in use.
        }
    }
}

当我构建一个项目时。它被展示了

Errors 0 and warning 1

enter image description here

在那之后当我运行一个项目时。应用程序在模拟器中启动并因以下错误而崩溃。

enter image description here

最佳答案

我的意思是在你的Member界面,应该是这样的:

[BaseType(typeof(NSObject))]
interface Member
{
    [Export("getMemberID")]
    string GetMemberID ();
}

关于c# - Xamarin.iOS 上的 Swift 框架 - 已抛出 Foundation.MonoTouchException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56965345/

相关文章:

c# - 通过方法调用封装C#列表

c# - 通过 <tab> 接收焦点时修改按钮样式,但在单击时不修改

c# - 如何从 AD DirectoryEntry 获取 DOMAIN\USER?

ios - 在 GameScene 中显示 UIAlertController (SpriteKit/Swift)

javascript - 在 jQuery live/delegate 中获取 "this"元素 ID,超时

WCF 负载测试

c# - c# 可移植类库的代码覆盖率

ios - 如何在另一个 View Controller Swift 4 中将数据插入 TableView?

ios - 一次删除 Collection View 中的多个单元格的问题

javascript - 初学者 - 显式绑定(bind) JavaScript