未调用Xamarin ObjC绑定回调

时间:2014-11-04 02:09:07

标签: c# ios xamarin.ios xamarin

我有一个Xamarin-Objective C绑定项目(见这里:https://github.com/bbhsu2/XamarinAdMarvelBinding)。从根本上说,它可以工作,我可以加载可点击的广告。

所以我在我的ViewController类上实现了AdMarvelDelegate接口,但是没有调用重要的实现方法:

public class CategoryViewController : UITableViewController, IAdMarvelDelegate
{
    /*Initializing stuff*/

    public void GetAdSucceeded() //not called
    {
        Console.WriteLine("succeeded!");
    }

    public void GetAdFailed() //not called
    {
        Console.WriteLine("failed!"); 
        AppDelegate.Shared.AddAdBanner();
    }
}

有没有人对为什么不调用GetAdSucceeded和GetAdFailed有任何建议?在我的绑定项目中:

    [Export("getAdSucceeded")]
    void GetAdSucceeded();

    [Export("getAdFailed")]
    void GetAdFailed();

我认为是正确的

1 个答案:

答案 0 :(得分:1)

如果AdMarvelDelegate中的相应成员是可选的(即他们在绑定中没有[Abstract]属性),那么您需要在这些方法上使用[Export]属性:

public class CategoryViewController : UITableViewController, IAdMarvelDelegate
{
    [Export ("getAdSucceeded")]
    public void GetAdSucceeded()
    {
        Console.WriteLine("succeeded!");
    }

    [Export("getAdFailed")]
    public void GetAdFailed()
    {
        Console.WriteLine("failed!"); 
        AppDelegate.Shared.AddAdBanner();
    }
}