2016-12-09 4 views
6

Je voulais suivre this tutorial pour en savoir plus sur NSRegularExpression en Swift, mais il n'a pas été mis à jour pour le Swift 3. Quand j'ouvre la cour de récréation avec les exemples qu'ils fournissent, je reçois plusieurs erreurs étant l'un d'entre eux l'appel:Comment utiliser les expressions régulières dans Swift 3?

let regex = NSRegularExpression(pattern: pattern, options: .allZeros, error: nil) 

Je l'ai vu que maintenant que initialiseur jette une exception si je l'ai changé l'appel, mais que .allZeros ne ne semble plus exister. Je ne trouve pas de tutoriel ou d'exemple avec un équivalent de cela dans Swift 3, quelqu'un pourrait-il me dire quelle option devrait maintenant remplacer cette option .allZeros?

+0

Cela peut aider http://stackoverflow.com/q/27880650/6521116 –

Répondre

7

Je crois que .allZeros devait être utilisé quand aucune autre option ne s'appliquait.

Donc, avec Swift 3, vous pouvez passer une liste vide d'options ou de quitter le paramètre options puisqu'il par défaut aucune option:

do { 
    let regex = try NSRegularExpression(pattern: pattern, options: []) 
} catch { 
} 

ou

do { 
    let regex = try NSRegularExpression(pattern: pattern) 
} catch { 
} 

Notez que dans Swift 3 vous n'utilisez plus le paramètre error. Il maintenant throws.

5

Vous pouvez utiliser []:

let regex = try! NSRegularExpression(pattern: pattern, options: []) 

qui est aussi la valeur par défaut, de sorte que vous pouvez omettre cet argument:

let regex = try! NSRegularExpression(pattern: pattern) 

La meilleure façon de le savoir est de commander + clic saut à la définition des méthodes:

public init(pattern: String, options: NSRegularExpression.Options = []) throws