Incapable d'utiliser la classe personnalisée, dans un protocole avec @objc attribut?

Je suis en train de créer un protocole JSON chargement de la délégation, JSONLoaderDelegate. Mon autre classe, appelée JSONLoader, est censé pour dispatcher les événements de son délégué (qui implémente l' JSONLoaderDelegate protocol) comme:

self?.delegate?.jsonLoaderdidEndWithError(self!, error: JSONLoaderError.LoadError)

La mise en œuvre de la JSONLoader est pas si important que cela (à mon humble avis). Cependant il me semble avoir des problèmes pour mettre en œuvre le protocole, c'est le code:

@objc protocol JSONLoaderDelegate {

    optional func jsonLoaderdidBeginLoading(jsonLoader: JSONLoader)
    func jsonLoaderdidEndWithError(jsonLoader: JSONLoader, error: JSONLoader.JSONLoaderError)
    func jsonLoaderDidEndWithSuccess(jsonLoader: JSONLoader)

}

Cela semble assez simple pour moi, mais j'obtiens une erreur:

méthode ne peut pas être marqué @objc parce que le type du paramètre ne peut pas
être représentée en Objective-C.

souligné tous les trois fonctions.

Évidemment, si je retire la @objc attribut je ne peux pas utiliser le optional pour la fonction. Je tiens vraiment à garder jsonLoaderdidBeginLoading comme option tho. Toutes les idées /méthodes pour résoudre ce problème? Merci!!!!

OriginalL'auteur Fygo | 2015-03-03