2

使用cocoapods-0.37.2这是我的Podfile

platform :ios, "8.0"
use_frameworks!

pod "GoogleMaps"
pod 'FontAwesomeKit'
pod 'PureLayout'

我正在尝试PureLayout像这样导入我的 .swift 文件:

import PureLayout

class ViewController: UIViewController {
...

但我得到错误:

没有这样的模块“PureLayout”

为什么???我认为 Cocoapods-Bridging-Header.h在使用时会自行创建use_frameworks!

4

3 回答 3

2

我没有使用该use_framework选项,但我在 Swift 中使用 PureLayout 和 CocoaPods 没有问题。

  • 我的 Podfile 只有一行pod 'PureLayout'
  • 我按照 Apple here<Your Module>-Bridging-Header.h的指示自己创建了文件。我加了一行。我还更新了我的目标构建设置,以按照说明输入桥接头文件名。#import "PureLayout.h"
  • 在我想使用 PureLayout 的 .swift 文件中,我不需要import PureLayout. 正如你提到的,它会给我一个错误。自动布局调用可以正常工作,因为它是通过桥接头定义的。

一方面 - 如果您将桥接头文件添加到其构建设置中,则测试目标将无法编译。因此,请确保在目标而不是项目级别上完成桥接头更新。

我猜 PureLayout github 页面中的当前 README 有点过时,因为它目前要求您import PureLayout在 .swift 文件中执行此操作。我也在这个 README 增强问题中添加了评论。

于 2015-08-02T08:48:37.903 回答
1

spacemonkey的方法对我有用。在这种情况下,您甚至不需要-Bridging-Header.h文件。

至于 FontAwesomeKit,由于它包含一些资源文件(xx.ttfxx.otf等),您应该将此文件添加到项目中以使其工作。像下面的节目:在此处输入图像描述

清理你的项目并重新编译,然后你就完成了。

以下是我的演示:

import FontAwesomeKit
import ChameleonFramework
import SnapKit

class ViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let iconSize : CGFloat = 128;
        let codeIcon = FAKFontAwesome.codepenIconWithSize(iconSize);

        imageView.image = codeIcon.imageWithSize(CGSizeMake(iconSize, iconSize));

        view.backgroundColor = UIColor.flatGreenColorDark();
    }
}

PS。既然你使用 swift,也许SnapKit布局框架会比 PureLayout 更合适。

于 2015-10-08T16:42:15.303 回答
1
  1. 安装 podfile
  2. 打开你的 .xcworkspace
  3. 把你的import PureLayout陈述放进去,得到错误
  4. 删除语句
  5. 清洁您的产品
  6. 构建你的产品
  7. 把你的import PureLayout声明放回去

在使用外部框架时,这对我来说很常见并且可以解决。

于 2015-09-12T03:53:40.993 回答