Стремительный фреймворк на Xamarin.iOS - выброшено исключение Foundation.MonoTouchException - PullRequest
1 голос
/ 10 июля 2019

Приложение 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 и добавил в Собственный фреймворк на Визуальная студия Xamarin.iOS

И я кодировал вручную для класса интерфейса.

using System;

using ObjCRuntime;
using Foundation;
using UIKit;

namespace CustomLibrary {

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

После этого я добавил ссылку на библиотеку Binding в проект приложения для iOS.

enter image description here

В ViewController я импортировал библиотеку Binding , выделил класс и напечатал в журнале.

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.
        }
    }
}

Когда я строю проект. Его показали

Ошибки 0 и предупреждения 1

enter image description here

После этого, когда я запускаю проект. Приложение было запущено в симуляторе и зависло с ошибкой ниже.

enter image description here

1 Ответ

1 голос
/ 11 июля 2019

Я имею в виду в вашем Member интерфейсе, должно быть что-то вроде этого:

[BaseType(typeof(NSObject))]
interface Member
{
    [Export("getMemberID")]
    string GetMemberID ();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...