2015-11-25 30 views
-1

我有一个正则表达式类此方法:Swift 2转换地狱部分327:如何驯服NSMatchingOptions为零?

func test(input:String) -> Bool 
{ 
    let matches = expression.matchesInString(input, options: nil, range: NSMakeRange(0, count(input))) 
    return matches.count > 0 
} 

雨燕2.1告诉我:

Nil is not compatible with expected argument type 'NSMatchingOptions' 

有人可以告诉我如何正确地解决这一问题? NSMatchingOptions似乎没有提供任何默认的空属性。

+0

你张贴整个相关的代码?如果您不想将任何选项传递给正则表达式,请使用'options:[]'。 –

+0

空阵列似乎也可以工作。谢谢。 – BadmintonCat

回答

0

NSMatchingOptionsenum,不是类,所以nil是没有意义的。您必须使用one of the enum values,其中最可能的是Anchored。这根本不是Swift问题。

+0

好的谢谢,然后锚定应该。 – BadmintonCat

+0

'Anchored'将强制正则表达式尝试匹配整个字符串输入。这是你需要的吗? –

+0

由于OP指定了整个字符串长度的范围,并且想要匹配的总数,所以我的猜测是“是”。 – NRitH

4

如果您不想将任何选项传递给正则表达式,请使用options: []

1

在斯威夫特2空OptionSetType可以<Type>()

NSMatchingOptions() 

或只是一对括号

来表示
[]