9

我正在将 Typhoon 库用于依赖注入框架。我CocoaPod用来安装这个库。这是我的 pod 文件:

target "typhoon-swift-demo" do
    pod 'Typhoon'
end

target "typhoon-swift-demoTests" do

end

我已成功安装,但是当我打开工作区项目文件时。我将这些代码行输入为 Typhoon 示例代码:

public class ApplicationAssembly: TyphoonAssembly {

}

我遇到了我的应用程序无法识别的错误TyphoonAssembly我尝试使用一些行,例如:

import Typhoon // not recogize typhoon
import TyphoonAssembly // not regconize

请告诉我如何解决这个问题。在我可以使用库之前我应该​​添加什么。谢谢 :)

4

4 回答 4

14

您必须使用 Objective-C 而不是 Swift 导入 Pod 头文件。因此,如果您想将 CocoaPods 与 Swift 一起使用,您将混合使用这两种语言。这是有关如何完成此操作的精彩教程。

于 2014-10-16T20:06:56.883 回答
3

除了 Quark 的回答之外,Typhoon Swift 示例还展示了如何设置 Typhoon 以与 Swift 和 CocoaPods 一起使用。

请注意,如果您正在使用“应用程序样式”测试,这是现在几乎所有地方的默认设置,那么测试目标将已经隐含地具有主目标的依赖项。因此测试目标应该被声明为独占。例子:

platform :ios, '7.0'

target :PocketForecast, :exclusive => true do

  pod 'Typhoon', :head

  pod 'CKUITools'
  pod 'ICLoader'
  pod 'NGAParallaxMotion'
  pod 'NSURL+QueryDictionary'
  pod 'OCLogTemplate'
  pod 'PaperFold', :git => 'https://github.com/jasperblues/PaperFold-for-iOS.git', :tag => '1.2-no-gesture-recognizers'

end

target :PocketForecastTests do
  pod 'Expecta', '~> 0.2.1'
  pod 'OCHamcrest'
  pod 'OCMockito'
end

inhibit_all_warnings!

如果测试目标未声明为独占,则它将所有应用程序的库链接两次。这可能会在 Typhoon 的案例中引起问题,因为它使用了大量的内省。


另请注意,在示例应用程序中,有一个桥接头,其中包括:

#import "Typhoon.h"


台风雨燕示例:

在此处输入图像描述

于 2014-10-17T01:23:57.010 回答
2

我认为这需要更新。我最近开始开发 Swift 应用程序,并且来自 Java 背景,搜索了像 Spring 这样的框架。我发现最好的是台风。然而,我没有为新手找到一个好的介绍,所以我做了一个临时项目来尝试一下。

我通过以下方式集成了Typhoon

  1. 安装cocoapods
  2. 使用“use_frameworks!”创建一个基本 podfile 像这里的线
  3. 吊舱安装
  4. 将“TyphoonInitialAssemblies”数组添加到我的 plist 文件中
  5. 创建第一个程序集并将其添加到 plist 中的数组中

在大会上,

import Typhoon

public class MyAssembly:TyphoonAssembly{}

奇迹般有效!

于 2015-04-20T07:55:28.867 回答
1

你甚至遇到过这个错误。

我通过方式修复:=>删除“平台:ios,'x.0'”

使用_frameworks!目标 'LateManagement' 做 pod 'Alamofire' pod 'SwiftyJSON' end

于 2016-08-25T04:12:02.563 回答