Ответ 1
В Swift 2 nil
не принимается, и ошибка больше не является выходным параметром (она выбрасывается), поэтому она становится:
var expr = try NSRegularExpression(pattern: "test", options: [])
Я получаю сообщение об ошибке:
Could not find an overload for 'init' that accepts the supplied arguments
когда я печатаю:
var expr = NSRegularExpression(pattern: "test", options: 0, error: nil)
Ошибка уходит, если я передаю член NSRegularExpressionOptions
...
В Swift 2 nil
не принимается, и ошибка больше не является выходным параметром (она выбрасывается), поэтому она становится:
var expr = try NSRegularExpression(pattern: "test", options: [])
Используйте nil вместо 0. NSRegularExpressionOptions - это структура, поэтому вы не можете передать целое число для этого параметра. В Objective-C параметры регулярного выражения выполнялись с перечислениями, которые оценивались с помощью ints.
var expr = NSRegularExpression(pattern: "test", options: nil, error: nil)
Значение 0 для типа перечисления может быть передано с пустым инициализатором
let expr = NSRegularExpression(pattern: "test", options: NSRegularExpressionOptions(), error: nil)
Случай .allZeros предоставляется во многих перечислениях, поэтому вы не можете указать никаких параметров.