我一直在尝试将一段代码从 Objective C 转换为 Swift 3.0 语法,但没有成功。请在下面找到 objective-c 代码。
Objective-C
NSCharacterSet *invalidCharSet = [[NSCharacterSet characterSetWithCharactersInString"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz "] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:invalidCharSet] componentsJoinedByString""];
这是我尝试过的,
Swift 3.0
let invalidCharSet : NSCharacterSet = NSCharacterSet.init(charactersIn: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ").inverted as NSCharacterSet
let filtered = (replacementString.components(separatedBy: invalidCharSet)as NSArray).componentsJoined(by: "")
第二条语句(即filtered = ..)给出以下错误,
错误
'components' produces '[String]', not the expected contextual result
type 'NSArray'
Best Answer-推荐答案 strong>
不要使用 NSArray,使用 Swift 数组并在其上调用 .joined 。作为一般规则,在 Swift 中,尽量避免使用 Foundation,最好使用 Swift 自己的类型化工具。
let invalidCharSet = CharacterSet(charactersIn: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ").inverted
let filtered = replacementString.components(separatedBy: invalidCharSet).joined(separator: " ")
关于ios - Swift 3.0 中的 Objective C 代码,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/39572924/
|