2016-12-09 14 views
6

में NSRegularExpression के बारे में जानने के लिए this tutorial का पालन करना चाहता था, लेकिन इसे Swift 3 पर अपडेट नहीं किया गया है। जब मैं उदाहरण वे प्रदान के साथ खेल का मैदान खोलते हैं, तो मैं कई त्रुटियाँ उनमें से एक होने के कॉल प्राप्त:स्विफ्ट 3 में नियमित अभिव्यक्तियों का उपयोग कैसे करें?

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

मैंने देखा है कि अब कि प्रारंभकर्ता तो एक अपवाद फेंकता मैं कॉल बदल गया है, लेकिन यह है कि .allZeros करता है अब अस्तित्व में नहीं लग रहा है। मुझे Swift 3 में समकक्ष के साथ कोई ट्यूटोरियल या उदाहरण नहीं मिला है, क्या कोई मुझे बता सकता है कि अब .allZeros विकल्प को किस विकल्प को बदलना चाहिए?

+0

यह http://stackoverflow.com/q/27880650/6521116 सहायता कर सकता है –

उत्तर

7

मेरा मानना ​​है कि .allZeros का उपयोग तब किया जाना चाहिए जब कोई अन्य विकल्प लागू न हो।

तो स्विफ्ट 3 के साथ, आप कुछ ही विकल्प के लिए विकल्पों में से एक खाली सूची पारित या इसे के बाद से बाहर छोड़ options पैरामीटर कर सकते हैं चूक:

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

या

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

ध्यान दें कि स्विफ्ट 3 में आप अब error पैरामीटर का उपयोग नहीं करते हैं। अब यह throws है।

5

आप [] उपयोग कर सकते हैं:

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

जो भी डिफ़ॉल्ट मान है, तो आप इस तर्क को भी हटा सकते हैं:

let regex = try! NSRegularExpression(pattern: pattern) 

सबसे आसान तरीका है यह पता लगाने के लिए आदेश है + कूद क्लिक करें विधियों की परिभाषा के लिए:

public init(pattern: String, options: NSRegularExpression.Options = []) throws 
संबंधित मुद्दे