2015-10-10 69 views
0

的參數列表調用初始值設定項。 :字符串;選擇:NilLiteralConvertible,錯誤:NilLiteralConvertible)'」更新到xcode 7後出錯:無法用類型爲'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)) 
      } 
     } 
    } 

誤差是在該行: - 讓正則表達式= NSRegularExpression(圖案:圖案,選項:無,錯誤:無)! 請建議我如何解決它。

+1

的可能的複製[如何在xcode的使用NSRegularExpression在夫特2.0 7](http://stackoverflow.com/questions/31406706/how-to-use-nsregularexpression-in-swift-2-0-in-xcode-7) –

回答

0

簽出新的初始化器

public init(pattern: String, options: NSRegularExpressionOptions) throws 

現在這意味着你必須通過一個options參數,並準備捕獲錯誤。例如:

do { 
    let regex = try NSRegularExpression(pattern: "pattern", options: .CaseInsensitive) 
} catch { 
    print(error) 
} 
0

的initalizer現在拋出並且需要一個選項:

do { 
    let regex = try NSRegularExpression(pattern: "YouPattern", options: NSRegularExpressionOptions.CaseInsensitive) 
} catch { 
    print(error) 
} 
+0

Hi @joern:我試過你的解決方案,它適用於我,但現在我在這條線上出現錯誤: 「regex.enumerateMatchesInString(backingStore.string,options:nil,range:searchRange)」。你能幫我解決這個代碼根據swift 2. – bittu

+0

這是因爲選項不能再是'零',你必須選擇一個選項。 – joern

相關問題