gpt4 book ai didi

objective-c - Swift 应用程序中的 Objective C 框架导致错误(MobFox 广告网络框架)

转载 作者:行者123 更新时间:2023-11-30 13:58:36 25 4
gpt4 key购买 nike

我正在尝试将 MobFox 广告网络实现到我的 Swift 应用程序中。该框架是用我不熟悉的ObjC构建的。

我已经添加了桥接 header 。

我收到 2 个我无法弄清楚的错误。这是产生错误的代码:

class ViewController: UIViewController, MobFoxNativeAdDelegate {

...

func nativeAdFailedToLoadWithError(error: NSError!) {
}

func nativeAdWasClicked() {
}

func nativeAdWasShown() {
}

func publisherIdForMobFoxNativeAdController(controller: MobFoxNativeAdController!) -> String! {
return "PUBLISHER_ID_HERE"
}

func nativeAdDidLoad(ad: MobFoxNativeAd!) {
}
}

这些是问题:

class ViewController: UIViewController, MobFoxNativeAdDelegate {

上述代码导致错误:类型“ViewController”无法符合协议(protocol)“MobFoxNativeAdDelegate”,因为它具有无法满足的要求

我确信我不需要实现其他方法 - 除非我弄错了。

另一个问题是:

func nativeAdDidLoad(ad: MobFoxNativeAd!) {
}

在这一行中,我收到以下错误:使用未声明的类型“MobFoxNativeAd”

奇怪的是,XCode 在输入时不建议使用此方法,因此它似乎无效。例如,如果我输入native,xcode会建议nativeAdFailedToLoadWithError、nativeAdWasClicked和nativeAdWasShown - 但它不会建议nativeAdDidLoad。

但是,这是必需的方法。

看看 ObjC 框架,它包含以下内容:

@class MobFoxNativeAdController;
@class MobFoxNativeAd;

@protocol MobFoxNativeAdDelegate <NSObject>

- (NSString *)publisherIdForMobFoxNativeAdController:(MobFoxNativeAdController *)controller;

- (void) nativeAdDidLoad:(MobFoxNativeAd *)ad;

- (void) nativeAdFailedToLoadWithError:(NSError *)error;

- (void) nativeAdWasShown;

- (void) nativeAdWasClicked;

- (UIViewController*) viewControllerForNativeAds;

@end

@interface MobFoxNativeAdController : NSObject

@property (strong, nonatomic) NSString *requestURL;
@property (nonatomic, assign) IBOutlet __unsafe_unretained id <MobFoxNativeAdDelegate> delegate;
@property (nonatomic, assign) BOOL locationAwareAdverts;
@property (nonatomic, assign) NSInteger userAge;
@property (nonatomic, strong) NSString* userGender;
@property (nonatomic, strong) NSArray* keywords;

@property (nonatomic, strong) NSArray* adTypes;

- (void)setLocationWithLatitude:(CGFloat)latitude longitude:(CGFloat)longitude;

- (UIView*)getNativeAdViewForResponse:(MobFoxNativeAd*)response xibName:(NSString*)name;

- (void)requestAd;

@end

最佳答案

首先,您似乎缺少 viewControllerForNativeAds 的实现,它列在协议(protocol)中,而不是您发布的代码中。

您是否在 .swift 文件顶部导入框架模块?

关于objective-c - Swift 应用程序中的 Objective C 框架导致错误(MobFox 广告网络框架),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33281969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com