【问题标题】:How to integrate Chartboost IOS SDK with Swift如何将 Chartboost IOS SDK 与 Swift 集成
【发布时间】:2014-10-12 07:30:26
【问题描述】:

我正在尝试将 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 个错误,例如 - >http://i.imgur.com/WCvyooz.png。为什么会出现这些错误以及如何消除它们?

【问题讨论】:

    标签: objective-c swift chartboost


    【解决方案1】:

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

    #import <UIKit/UIKit.h>
    

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

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

    【讨论】:

    • 刚刚检查,我的BridgingHeader.h 文件肯定在/Users/andrew/Documents/dev/ios/Protect Paigridge/
    • 对不起,我还没试过。原因是因为我在家庭 iPad 上开发,而我的父母已经走了几个晚上并带着它。我打算在他们回来后尝试,但只会使用模拟器。抱歉让您久等了!
    • 我们取得了进展!尽管我在我的快速代码imgur.com/Zz4ryXl 中遇到了不同的错误,但我不再遇到所有错误。你能帮忙吗?
    • 你需要那条线吗?看起来我无需导入即可访问所有 Chartboost 方法。
    • 原来我没有。抱歉,我是制作 IOS 应用程序的新手。我只想说,你是个巫师!干杯。
    【解决方案2】:

    添加到上面说的最上面的答案尝试添加两个

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

    到您的 BridgingHeader.h 文件

    并确保它们都高于

    #import <Chartboost/Chartboost.h>
    

    如上图

    【讨论】:

      【解决方案3】:

      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()
      

      【讨论】:

      【解决方案4】:

      这个问题是如何导入。

      您可以制作 objC 代码和 bridge.h,以显示在您的代码中

      [Chartboost showInterstitial:CBLocationHomeScreen];

      为了快速

      Chartboost.showInterstitial(CBLocationHomeScreen)

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-08
        • 1970-01-01
        • 2017-07-20
        • 1970-01-01
        • 2020-06-04
        • 2018-03-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多