我有一个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();
我认为是正确的
答案 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();
}
}