I'm using Typhoon library for Dependency Injection Framework. I use CocoaPod
for installing this library. Here is my pod file:
target "typhoon-swift-demo" do
pod 'Typhoon'
end
target "typhoon-swift-demoTests" do
end
I have installed successfully but when I open workspace project file. I type those line of code as Typhoon sample code:
public class ApplicationAssembly: TyphoonAssembly {
}
I meet error that my application doesn't recognize TyphoonAssembly
I have tried to use some lines such as:
import Typhoon // not recogize typhoon
import TyphoonAssembly // not regconize
Please tell me how to fix this problem. What should I add before I can use library. Thanks :)
You have to import the Pod header files using Objective-C and not Swift. So you'll be mixing the two languages if you want to use CocoaPods with Swift. Here's a great tutorial on how to accomplish this.
In addition to Quark's answer, The Typhoon Swift example shows how to set up Typhoon for usage with Swift and CocoaPods.
Note that if you're using "application-style" tests, which is the default almost everywhere now, then the test target will already implicitly have the main target's dependencies. Therefore the test target should be declared exclusive. Example:
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!
If the test target is not declared exclusive, then it will have all of the application's libraries linked twice. This can cause problems in Typhoon's case, as it uses a lot of introspection.
Also note in the sample application, that there is a bridging header, that includes:
#import "Typhoon.h"
Typhoon Swift Example:
I think this needs an update. I have started recently developping Swift applications and, coming from a Java background, searched for a framework like Spring.
The best I found is Typhoon. I didn't find a good introduction for newbies however, so I made a scratch project to try it out.
I integrated Typhoon by:
- Installing cocoapods
- Creating a basic podfile with a "use_frameworks!" line like here
- pod install
- Adding the "TyphoonInitialAssemblies" array to my plist file
- Create a first assembly and add it to the array in the plist
In the assembly,
import Typhoon
public class MyAssembly:TyphoonAssembly{}
Works like a charm!
You have even met this error.
I fixed by way:
=> remove "platform :ios, 'x.0'"
use_frameworks!
target 'LateManagement' do
pod 'Alamofire'
pod 'SwiftyJSON'
end