2016-04-29 9 views
0

Ich benutze viele Bibliotheken in meinem Projekt mit Cocoapoden. Es erfordert das Importieren dieser Bibliotheken in Dateien, in denen ich Instanzen von Klassen verwende.Schnell. Wie deklariere func mit Rückgabetyp aus importierter Bibliothek im Protokoll?

Heute habe ich entscheiden Protokoll zu erstellen und ein deklarierter func muss Typen aus importierter Bibliothek zurückgeben:

import SwiftyJSON 

protocol ContainsProductsList { 
    func productsSummaryPrice() -> Int 
    func productsCount() -> Int 
    func productsAvailability(date : String) -> Calendar.Availability 
    func JSON() -> JSON 
} 

aber Compiler nicht erlauben, mir diesen (Verwendung von nicht angemeldeten Typ ‚JSON‘) zu tun. Ich habe versucht, Protokoll in einer anderen Datei zu platzieren, die SwiftyJSON lib verwenden, aber das Ergebnis war dasselbe. Können Sie erklären, warum das passiert? Vielleicht gibt es eine Möglichkeit, dies zu umgehen?

+0

Haben Sie versucht, diese Funktion in einer Klasse deklariert (nicht-Protokoll) und wenn ja, was sind die Ergebnisse? Hast du alles richtig importiert? Verwenden Sie den 'use_frameworks!' - Header in der Pod-Datei (den Sie schnell benötigen). –

Antwort

2

Verwenden Sie eine korrekte Benennung der Methode:

protocol ContainsProductsList { 
    func productsSummaryPrice() -> Int 
    func productsCount() -> Int 
    func productsAvailability(date : String) -> Calendar.Availability 
    func JSONMYFUNCTION() -> JSON 
} 
+0

richtig)) Ich habe den func umbenannt und Compiler behalten Ruhe. Wahrscheinlich entscheidet es, dass der Func-Name (JSON()) eine neue JSON-Objektinstanz ist. Danke vielmals – iamthevoid