2016-09-19 3 views
2

私はObjective CのコードをSwift 3.0の構文に変換しようとしましたが、成功しませんでした。以下の目的のCコードを見つけてください。次のエラーを与えるSwift 3.0の目的のCコード

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

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

私が試したものだ、

スウィフトのObjective C(すなわちフィルタ= ..)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配列を使用し、その上で.joinedを呼び出します。 – Moritz

+0

両方の提案を試してみました...どちらも動作していません –

答えて

3

にNSArrayを使用しないでください、スウィフト配列を使用して呼び出す.joinedその上に。原則として、Swiftでは、Foundationの使用を避け、Swift独自の型付きツールを使用してください。

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

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

恐ろしい男...ありがとう:) –

関連する問題