// L'erreur est ici let regex = NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: nil, error: nil)
// L'erreur est: ***
impossible de find un initialiseur de type nsregularexpression acceptant un argument de type (model: string, ption: nil, erreur: nil)
Il y a 2 changements en ce qui concerne la syntaxe dans Swift 2.0: (1) vous enveloppez l'appel dans un try ... catch
block au lieu de fournir un paramètre d' error
; et (2) les options
devraient être un Set
, pas une numérique or
des options individuelles.
Dans votre cas, le code devrait ressembler à ceci:
do { let regex = try NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: []) } catch let error as NSError { print(error.localizedDescription) }
Si vous savez que votre model réussit toujours, vous pouvez le raccourcir comme ceci:
let regex = try! NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: [])
Maintenant, si vous voulez définir des options pour votre model, vous pouvez le faire:
let regex = try! NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: [.CaseInsensitive, .AnchorsMatchLines])
Dans Swift2. Vous devez utiliser try
pour la gestion des erreurs.
do { let regex = try NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: NSRegularExpressionOptions.CaseInsensitive) }catch { // Handling error }
NSRegularExpression dans Swift 2.0 dans xcode 7
extension Ssortingng { func isEmail() throws -> Bool { let regex = try NSRegularExpression(pattern: "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[AZ]{2,4}$", options: [.CaseInsensitive]) return regex.firstMatchInSsortingng(self, options: NSMatchingOptions(rawValue: 0), range: NSMakeRange(0, characters.count)) != nil } }
Ensuite, lorsque vous voulez appeler la méthode, faites-le dans un bloc do et récupérez l'erreur qui en sort.
do { try "[email protected]".isEmail() } catch { print(error) }