62 votes

Quel est l'équivalent d'un id Objective-C en Swift ?

J'essaie d'utiliser une @IBAction pour lier un événement de clic sur un bouton à une méthode Swift. En Objective-C, le type de paramètre de l'IBAction est id. Quel est l'équivalent de id en Swift ?

92voto

Doug Richardson Points 1386

Swift 3

Any Si vous savez que l'expéditeur n'est jamais nil .

@IBAction func buttonClicked(sender : Any) {
    println("Button was clicked", sender)
}

Any? si l'expéditeur peut être nil .

@IBAction func buttonClicked(sender : Any?) {
    println("Button was clicked", sender)
}

Swift 2

AnyObject Si vous savez que l'expéditeur n'est jamais nil .

@IBAction func buttonClicked(sender : AnyObject) {
    println("Button was clicked", sender)
}

AnyObject? si l'expéditeur peut être nil .

@IBAction func buttonClicked(sender : AnyObject?) {
    println("Button was clicked", sender)
}

11 votes

Ou parfois AnyObject? en fonction de la façon dont vous souhaitez gérer nil.

0 votes

Extrait de la documentation : Swift inclut un type de protocole appelé AnyObject qui représente n'importe quel type d'objet, tout comme id en Objective-C. developer.apple.com/library/prerelease/ios/documentation/Swift/

1 votes

Ou si vous êtes sûr qu'il s'agit du bouton, utilisez UIButton au lieu de anyObject.

0voto

Nilesh Patel Points 525

Tout objet

Autre type de cartographie,

Remapper certains types du noyau de l'Objective-C vers leurs alternati comme NSString en String

Remplacer certains concepts Objective-C par des concepts correspondants les pointeurs vers les options

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X