更新到 xcode 7 后出错:无法使用类型参数列表调用类型“NSRegularExpression”的初始化程序
Posted
技术标签:
【中文标题】更新到 xcode 7 后出错:无法使用类型参数列表调用类型“NSRegularExpression”的初始化程序【英文标题】:Error after updating to xcode 7 : Cannot invoke initializer for type 'NSRegularExpression' with an argument list of type 【发布时间】:2015-10-10 10:06:43 【问题描述】:更新 xcode 后出现以下错误: “无法使用类型为 '(pattern: String, options: NilLiteralConvertible, error: NilLiteralConvertible)' 的参数列表调用类型 'NSRegularExpression' 的初始化程序”
以下是导致错误的代码:
func applyStylesToRange(searchRange: NSRange)
let normalAttrs = [NSFontAttributeName : UIFont.preferredFontForTextStyle(UIFontTextStyleBody)]
// iterate over each replacement
for (pattern, attributes) in replacements
let regex = NSRegularExpression(pattern: pattern, options: nil, error: nil)!
regex.enumerateMatchesInString(backingStore.string, options: nil, range: searchRange)
match, flags, stop in
// apply the style
let matchRange = match.rangeAtIndex(1)
self.addAttributes(attributes, range: matchRange)
// reset the style to the original
let maxRange = matchRange.location + matchRange.length
if maxRange + 1 < self.length
self.addAttributes(normalAttrs, range: NSMakeRange(maxRange, 1))
错误在这一行:- let regex = NSRegularExpression(pattern: pattern, options: nil, error: nil)! 请建议我如何解决它。
【问题讨论】:
How to use NSRegularExpression in Swift 2.0 in xcode 7的可能重复 【参考方案1】:初始化器现在是可抛出的,需要一个选项:
do
let regex = try NSRegularExpression(pattern: "YouPattern", options: NSRegularExpressionOptions.CaseInsensitive)
catch
print(error)
【讨论】:
嗨@joern:我试过你的解决方案,它对我有用,但现在我在这一行遇到错误:“regex.enumerateMatchesInString(backingStore.string, options: nil, range: searchRange)” .你能帮我根据swift 2解决这个代码吗? 那是因为选项不能再是nil
,你必须选择一个选项。【参考方案2】:
检查一个新的初始化程序
public init(pattern: String, options: NSRegularExpressionOptions) throws
这意味着现在您必须传递一个options
参数并准备好捕捉错误。示例:
do
let regex = try NSRegularExpression(pattern: "pattern", options: .CaseInsensitive)
catch
print(error)
【讨论】:
以上是关于更新到 xcode 7 后出错:无法使用类型参数列表调用类型“NSRegularExpression”的初始化程序的主要内容,如果未能解决你的问题,请参考以下文章
更新到 Xcode7-beta4 后,无法在属性检查器中设置 UITableView 的 backgroundColor 属性
将 Xcode 6 beta 6 更新到 beta 7 后出现“可选错误”
将 xcode 更新到 9.4 后,react native ios build 失败。错误是“NSInteger”类型的值