OGeek|极客世界-中国程序员成长平台

标题: ios - Swift 3.0 中的 Objective C 代码 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 12:07
标题: ios - Swift 3.0 中的 Objective C 代码

我一直在尝试将一段代码从 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-推荐答案


不要使用 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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4