swift init n'est pas visible en objective-C
Je suis en train de créer init
fonctions dans Swift
et de créer des instances de Objective-C
. Le problème est que je ne la vois pas dans Project-Swift.h
fichier et je ne suis pas en mesure de trouver la fonction lors de l'initialisation. J'ai une fonction définie comme ci-dessous:
public init(userId: Int!) {
self.init(style: UITableViewStyle.Plain)
self.userId = userId
}
J'ai même essayé de mettre @objc(initWithUserId:)
et je reçois la même erreur à nouveau. Est-il autre chose que je suis absent? Comment puis-je obtenir le constructeur visible à Objective-C
code?
J'ai lu ci-dessous pour ceci:
Comment écrire de la méthode Init dans Swift
Comment définir les méthodes optionnelles de Swift protocole?
Vous devez vous connecter pour publier un commentaire.
La question que vous voyez n'est que la Swift ne peut pas pont en option types de valeur --
Int
est un type de valeur, de sorteInt!
ne peut pas être comblé. En option types de référence (c'est à dire, toute la classe) pont correctement, car ils peuvent toujours êtrenil
en Objective-C. Vos deux options sont à rendre le paramètre de non-facultatif, auquel cas il serait comblé à ObjC comme unint
ouNSInteger
:Ou d'utiliser une option de
NSNumber?
, car cela peut être comblé comme une valeur facultative:Noter, cependant, vous n'êtes pas en train de traiter le paramètre comme une option - sauf
self.userId
est également une option que vous êtes vous-même la mise en place potentielle d'exécution des plantages de cette façon.utiliser celui-ci: