2016-09-19 11 views
2

我一直在试图将一段代码从Objective C转换为Swift 3.0语法,但没有成功。请在下面找到目标c代码。Swift 3.0中的Objective C代码

目标C

NSCharacterSet *invalidCharSet = [[NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz "] invertedSet]; 

NSString *filtered = [[string componentsSeparatedByCharactersInSet:invalidCharSet] componentsJoinedByString:@""]; 

这是我已经试过了,

雨燕3.0

let invalidCharSet : NSCharacterSet = NSCharacterSet.init(charactersIn: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ").inverted as NSCharacterSet 

let filtered = (replacementString.components(separatedBy: invalidCharSet)as NSArray).componentsJoined(by: "") 

第二条语句(即过滤= ..),给出以下错误,

错误

'分量' 产生 '[字符串]',而不是预期的上下文结果 类型 '的NSArray'

+1

不要使用NSArray,请使用Swift数组并调用它。 – Moritz

+0

尝试了两种建议...两者都不起作用 –

回答

3

不要使用的NSArray,使用夫特阵列和呼叫.joined在上面。作为一般规则,在Swift中,尽量避免使用Foundation,更好地使用Swift自己的类型化工具。

let invalidCharSet = CharacterSet(charactersIn: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ").inverted 

let filtered = replacementString.components(separatedBy: invalidCharSet).joined(separator: " ") 
+1

真棒伙计...谢谢:) –