如何将Chartboost IOS SDK与Swift集成

时间:2014-10-12 07:30:26

标签: objective-c swift chartboost

我正在尝试将Chartboost IOS SDK与Swift集成。我已经按照Chartboost IOS集成页面https://answers.chartboost.com/hc/en-us/articles/201220095-iOS-Integration上的所有说明进行操作,并创建了一个桥接标题,以便在我的swift项目中使用该框架。

BridgingHeader.h

#import <Chartboost/Chartboost.h>
#import <Chartboost/CBNewsfeed.h>
#import <CommonCrypto/CommonDigest.h>
#import <AdSupport/AdSupport.h>

我的BridgingHeader.h文件在我的项目根目录http://i.imgur.com/DcTcixo.png中被放置了,我已经按照必要的步骤将BridgingHeader.h添加到我的构建设置http://i.imgur.com/jvtzs7a.png但是当我运行项目时,我得到了像52这样的错误 - &gt; http://i.imgur.com/WCvyooz.png。为什么我会收到这些错误?如何摆脱它们?

4 个答案:

答案 0 :(得分:4)

看起来标题需要UIKit和Foundation。在桥接标题的顶部添加此行。

#import <UIKit/UIKit.h>

另外,您是否确定您的桥接标头位于文件系统中项目的根目录中? Xcode的Project Navigator的层次结构不一定与文件系统相同。

它在/Users/andrew/Documents/dev/ios/Protect Paigridge/ Open Finder中查找标题,并确保标题位于该目录中。 Xcode可能已经创建了一个比其他代码文件更深的层次。如果是这种情况,您可以在构建设置中编辑条目或移动文件。

答案 1 :(得分:0)

Swift Chartboost代码,在AppDelegate类中添加它:

func applicationDidBecomeActive(application: UIApplication) 
{        
    let kChartboostAppID = "5472ef8f04b01601a1a5814c";
    let kChartboostAppSignature = "5b6222426e68cda48669a1d4d8246d4c3d20db9c";

    Chartboost.startWithAppId(kChartboostAppID, appSignature: kChartboostAppSignature, delegate: self);
    Chartboost.cacheMoreApps(CBLocationHomeScreen)
}

class func showChartboostAds()
{
     Chartboost.showInterstitial(CBLocationHomeScreen);
}

func didFailToLoadInterstitial(location :String!, withError error: CBLoadError)
{

}

func didDismissInterstitial(location :String! )
{
        if(location == CBLocationHomeScreen)
        {
            Chartboost.cacheInterstitial(CBLocationMainMenu)
        }
        else if(location == CBLocationMainMenu)
        {
            Chartboost.cacheInterstitial(CBLocationGameOver)
        }
        else if(location == CBLocationGameOver)
        {
            Chartboost.cacheInterstitial(CBLocationLevelComplete)
        }
        else if(location == CBLocationLevelComplete)
        {
            Chartboost.cacheInterstitial(CBLocationHomeScreen)
        }
 }

调用语法:

   AppDelegate.showChartboostAds()

答案 2 :(得分:0)

此问题是如何导入。

您可以在代码中显示objC代码和bridge.h

[Chartboost showInterstitial:CBLocationHomeScreen];

快速

Chartboost.showInterstitial(CBLocationHomeScreen)

我希望能帮到你

答案 3 :(得分:0)

添加到上面的答案说上面尝试添加

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <Chartboost/Chartboost.h>

到您的BridgingHeader.h文件

并确保它们都在

之上
#import <Chartboost/Chartboost.h>

如上所示