1

我想将 Applovin SDK 集成到我的 Cocos2d-x iOS 应用程序中,但委托不起作用。

[ALInterstitialAd shared].adDisplayDelegate = self;  << Error: Use of undeclared identifier 'self'
[ALInterstitialAd showOver:[[UIApplication sharedApplication] keyWindow]];

或者

objClass *obj1 = [objClass alloc];
[ALInterstitialAd shared].adDisplayDelegate = obj1;  << Error: assigning 'id<ALAdDisplayDelegate>' from incompatibile type "objClass *"

或者

init: objClass* obj1 = [[objClass alloc] init];
[ALInterstitialAd shared].adDisplayDelegate = obj1;  << Error: assigning 'id<ALAdDisplayDelegate>' from incompatibile type "objClass *"

如何解决这个问题?我想捕获那些侦听器事件。

4

2 回答 2

1

如果此代码在 Objective-C 类中但在类方法中(用前导表示+),则 self 也将不可用。改用实例方法中的代码(用前导表示-)。

在 C++ 代码中没有self关键字。而是使用this指针。尽管在这种情况下,由于 API 在 Objective-C 中,这可能不起作用 - 因此委托可能需要是一个 Objective-C 对象(id)。

如果您正在编写 C++ 代码,则必须创建一个 Objective-C 包装类来实现 adDisplayDelegate 工作所需的协议(如果有的话)。

于 2013-10-02T13:42:24.330 回答
1

我刚刚解决了这个问题,但我在 Xcode 中使用纯 Object-C。在添加委托方法之前出现错误:ALAdDisplayDelegate、ALAdLoadDelegate、ALAdUpdateObserver、ALAdVideoPlaybackDelegate

。H

#import "ALInterstitialAd.h"

@interface VSGalleryViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate, ALAdDisplayDelegate, ALAdLoadDelegate, ALAdUpdateObserver, ALAdVideoPlaybackDelegate>

希望能帮助到你

于 2013-10-02T14:52:47.497 回答