我喜欢在 Swift 中使用 ObjC 常量。
IronSource 广告网络建议像这样初始化横幅广告:
[IronSource loadBannerWithViewController:self size:ISBannerSize_SMART];
我使用 Swift,翻译如下:
IronSource.loadBanner(with: self, size: dont_know)
但是对于参数 ISBannerSize_SMART 我不知道该填写什么,因为对我来说没有任何作用。 ISBannerSize.ISBannerSize_SMART 不工作,ISBannerSize_SMART 不工作...
这就是 ObjC 源的样子。
//
// ISBannerSize.h
// IronSource
#import <Foundation/Foundation.h>
static NSString* const kSizeSmart = @"SMART";
#define ISBannerSize_SMART [[ISBannerSize alloc] initWithDescription:kSizeSmart width:0 height:0]
@interface ISBannerSize : NSObject
ISBannerSize_SMART
不是常数。这是一个扩展为的宏
[[ISBannerSize alloc] initWithDescription:kSizeSmart width:0 height:0]
此类宏不会导入到 Swift 中。 只有扩展为如下常量值的简单宏才会导入到 Swift 中:
#define SOME_CONSTANT 3.14
所以你需要将
[[ISBannerSize alloc] initWithDescription:kSizeSmart width:0 height:0]
翻译成 Swift,即类似
ISBannerSize(description: lSizeSmart, width: 0, height: 0)
你可以直接用这个作为
size
的loadBanner
参数,也可以写一个ISBannerSize
的扩展:
extension ISBannerSize {
static var smart: ISBannerSize {
ISBannerSize(description: lSizeSmart, width: 0, height: 0)
}
}
用途:
IronSource.loadBanner(with: self, size: .smart)