Events Xamarin绑定事件WeakDelegate问题

Events Xamarin绑定事件WeakDelegate问题,events,xamarin,xamarin.ios,weak-references,xamarin.ios-binding,Events,Xamarin,Xamarin.ios,Weak References,Xamarin.ios Binding,我有以下几点 iOS代码: @protocol TestDelegate - (void)onSuccess:(NSString*)token; @end @interface Utility : NSObject @property (nullable, weak, getter = getTestDelegate, setter = setTestDelegate:) id<TestDelegate> delegate; @end 当我只附加到事件而不使用委托属性时,

我有以下几点

iOS代码:

@protocol TestDelegate

- (void)onSuccess:(NSString*)token;

@end

@interface Utility : NSObject

@property (nullable, weak, getter = getTestDelegate, setter = setTestDelegate:) id<TestDelegate> delegate;

@end
当我只附加到事件而不使用委托属性时,则不会触发事件

如果我错了,请纠正我,但如果只使用事件,则没有任何内容引用内部创建的XDelegate,因此它将立即被垃圾收集

在我的例子中,在附加到事件之后,我必须存储内部的elegate以使它们工作

public class TestClass
{
    private readonly Delegate _del;

    public TestClass()
    {
        iOS.SingletonInstance().OnSuccess += HandleOnSuccess;
        _del = iOS.SingletonInstance().Delegate; //store Delegate instance to make events work
    }
}

问题出在其他地方-singletonistance()是一个方法而不是属性,因此没有任何东西引用返回的对象,因此它正在被GCed

public class TestClass
{
    private readonly Delegate _del;

    public TestClass()
    {
        iOS.SingletonInstance().OnSuccess += HandleOnSuccess;
        _del = iOS.SingletonInstance().Delegate; //store Delegate instance to make events work
    }
}