2015-06-08 21 views
2

使用的CocoaPods-0.37.2這裏是我的PodfilePureLayout斯威夫特用的CocoaPods

platform :ios, "8.0" 
use_frameworks! 

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

我想在我的.swift文件中像這樣導入PureLayout

import PureLayout 

class ViewController: UIViewController { 
... 

但我收到錯誤:

No such module 'PureLayout'

爲什麼?我以爲Cocoapods在使用use_frameworks!時自己創建-Bridging-Header.h

+0

你是從'.xcworkspace'建立它嗎? –

+0

在使用CocoaPods時,它應該「正常工作」。你確定你正確運行'pod install'並按Jakub建議打開'.xcworkspace'嗎?這裏有一個簡單的示例項目,我把它們放在一起來測試它。你可以看到它的工作方式與你所做的一樣:http://cl.ly/2M1S3D2F0k1i – smileyborg

回答

2

我沒有使用use_framework選項,但我用PureLayout斯威夫特與無的CocoaPods問題。

  • 我的Podfile只有一行pod 'PureLayout'
  • 我自己根據Apple here的指示創建了<Your Module>-Bridging-Header.h文件。我添加了一行#import "PureLayout.h"。我還更新了我的目標版本設置,按照說明輸入橋接頭文件名。
  • 在.swift文件中我想使用PureLayout,我沒有需要有import PureLayout。如你所說,它會給我一個錯誤。自動佈局調用將會正常工作,因爲它是通過橋接頭來定義的。

一邊點 - 測試目標將無法編譯如果添加橋接頭文件的構建設置。因此,確保橋接頭更新是在目標而不是項目級完成的。

我猜PureLayout github頁面中的當前README有點過時,因爲它當前會要求您在.swift文件中執行import PureLayout。我也在this README enhancement issue中添加了評論。

1
  1. 安裝podfile
  2. 打開.xcworkspace
  3. 把你import PureLayout聲明中,得到錯誤
  4. 刪除聲明
  5. 清潔產品
  6. 建立自己的產品
  7. 放您的import PureLayout聲明返回

這是使用外部框架時常見的問題和解決方法。

1

spacemonkey是爲我工作的方法。在這種情況下,您甚至不需要-Bridging-Header.h文件。

至於FontAwesomeKit,因爲它包含了一些資源文件(xx.ttfxx.otf,等等),你應該添加這個文件到項目,使其工作。如下所示:enter image description here

清理項目並重新編譯,然後完成。

以下是我對這個演示:

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更合適。

+0

感謝您使用SnapKit鏈接。 – Darmen