2016-09-19 10 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

真棒夥計...謝謝:) –