错误:类型字符串的值没有成员componentsSeparatedByCharactersInSet

Cos*_*ows 4 xcode ios swift swift2 swift3

以下代码引发以下错误:"类型字符串的值没有成员componentsSeparatedByCharactersInSet"

此代码来自另一个在swift版本1或2中运行但之前不再有效的项目.

   import Foundation

extension String {

    func split() -> [String] {
        return self.componentsSeparatedByCharactersInSet(
            CharacterSet.whitespaceAndNewlineCharacterSet())
            .filter({$0 != ""});
    }
}

extension Array {

    func unique<T: Equatable>() -> [T] {
        var uniqueValues = [T]();

        for value in self {
            if !contains(uniqueValues, value as T) {
                uniqueValues.append(value as! T);
            }
        }
        return uniqueValues;
    }

    func first<T>(test:(T) -> Bool) -> T? {
        for value in self {
            if test(value as! T) {
                return value as? T;
            }
        }
        return nil;
    }
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*ica 10

您正在寻找components(separatedBy:):

func split() -> [String] {
    return self.components(separatedBy: .whitespacesAndNewlines).filter{!$0.isEmpty}
}
Run Code Online (Sandbox Code Playgroud)

  • Swift 3没有`whitespaceAndNewlineCharacterSet()`.正确的是`return components(separatedBy:.whitespacesAndNewlines).filter {!$ 0.isEmpty}` (3认同)