2014-10-16 8 views
8

Ich verwende Typhoon-Bibliothek für Dependency Injection Framework. Ich verwende CocoaPod für die Installation dieser Bibliothek. Hier ist meine Pod-Datei:Swift: Bibliothek aus Pod-Datei kann nicht verwendet werden

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

target "typhoon-swift-demoTests" do 

end 

Ich habe erfolgreich installiert, aber wenn ich Arbeitsbereich Projektdatei öffnen. Ich tippe jene Codezeile als Taifun Beispielcode:

public class ApplicationAssembly: TyphoonAssembly { 

} 

Ich treffe Fehler, dass meine Bewerbung nicht TyphoonAssembly erkennt Ich habe versucht, ein paar Zeilen zu verwenden, wie zum Beispiel:

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

Bitte sagen Sie mir, wie um dieses Problem zu beheben. Was soll ich hinzufügen, bevor ich die Bibliothek benutzen kann? Danke :)

Antwort

10

Sie müssen die Pod-Header-Dateien mit Objective-C und nicht Swift importieren. Sie werden also die beiden Sprachen mischen, wenn Sie CocoaPods mit Swift verwenden möchten. Here's a great tutorial, um dies zu erreichen.

+0

Nizza: D Vielen Dank: D es kostet mich viel Zeit: D nur, weil ich direkt in schnellen springen wollen, bevor irgendetwas Grund Lernen : D – hqt

+0

Das hat bei mir nicht funktioniert. Dieser war besser http://blog.ios-developers.io/parse-backend-with-swift/ – jonypz

3

Zusätzlich zu Quarks Antwort zeigt The Typhoon Swift example, wie Typhoon zur Verwendung mit Swift und CocoaPods eingerichtet wird.

Beachten Sie, dass das Testziel implizit bereits die Abhängigkeiten des Hauptziels enthält, wenn Sie "Anwendungsstil" -Tests verwenden, die fast überall jetzt standardmäßig sind. Daher sollte das Testziel als exklusiv deklariert werden. Beispiel:

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! 

Wenn das Testziel nicht als exklusiv deklariert ist, werden alle Bibliotheken der Anwendung doppelt verknüpft. Dies kann zu Problemen bei Typhoon führen, da es viel Selbstbeobachtung erfordert.


Auch in der Beispielanwendung beachten Sie, dass es ein Brückenkopf ist, das beinhaltet:

#import "Typhoon.h" 


Typhoon Swift Beispiel:

enter image description here

+0

danke :) Ich habe Projekt-Pod-Datei gelesen, aber ich verstehe nicht, warum der Autor das schreibt. Jetzt kann ich klar verstehen: D Ihre Bibliothek + Demo ist großartig, nicht nur für diese Framework-Bibliothek, sondern auch für die, die versuchen, IOS-Programmierung zu lernen :) – hqt

+0

:) Wären Sie so freundlich, einen Kommentar zum Podfile hinzuzufügen, der das oben genannte erklärt , und senden Sie eine Pull-Anfrage? Scheint, wir hätten diese Erklärung einbeziehen sollen. –

2

Ich denke, das braucht ein Update. Ich habe kürzlich mit der Entwicklung von Swift-Anwendungen begonnen und suchte, ausgehend von einem Java-Hintergrund, nach einem Framework wie Spring. Das Beste, was ich gefunden habe, ist Typhoon. Ich fand jedoch keine gute Einführung für Anfänger, also habe ich ein Scratch-Projekt gemacht, um es auszuprobieren.

integriert I Typhoon von:

  1. cocoapods Installation
  2. eine grundlegende podfile mit einem „use_frameworks Erstellen!"-Linie like here
  3. pod
  4. Hinzufügen der Installation von "TyphoonInitialAssemblies" Array meine plist Datei
  5. Erstellen einer ersten Baugruppe und an das Array in der plist hinzufügen

Bei der Montage,

import Typhoon 

public class MyAssembly:TyphoonAssembly{} 

Funktioniert wie ein Charme!

1

Sie haben diesen Fehler sogar getroffen.

ich durch fixed: => entfernen "Plattform: ios, 'x.0'"

use_frameworks! Ziel ‚LateManagement‘ do pod ‚Alamofire‘ pod ‚SwiftyJSON‘ Ende