2016-12-09 11 views
6

Chciałem podążać za this tutorial, aby dowiedzieć się o NSRegularExpression w Swift, ale nie został on zaktualizowany do Swift 3. Gdy otwieram plac zabaw z przykładów, które świadczą, mam kilka błędów jest jednym z nich wezwanie:Jak używać wyrażeń regularnych w Swift 3?

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

Widziałem, że teraz, inicjator zgłasza wyjątek więc zmieniłem połączenie, ale to robi .allZeros wydaje się już nie istnieć. Nie znalazłem żadnego tutoriala lub przykładu z odpowiednikiem tego w Swift 3, czy ktoś mógłby mi powiedzieć, która opcja powinna teraz zastąpić taką opcję .allZeros?

+0

Może to pomóc http://stackoverflow.com/q/27880650/6521116 –

Odpowiedz

7

Wierzę, że .allZeros miał być użyty, gdy nie zastosowano innych opcji.

Więc z Swift 3 można przekazać pustą listę opcji lub pominąć parametr options ponieważ domyślne do żadnych opcji:

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

lub

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

pamiętać, że w Swift 3 nie używasz już parametru error. Teraz jest to throws.

5

Można użyć []:

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

który jest również wartość domyślna, więc można pominąć ten argument:

let regex = try! NSRegularExpression(pattern: pattern) 

Najprostszym sposobem, aby się tego dowiedzieć jest Command + kliknij skok do definicji metod:

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