ios - 无法使用类型为 'implode' 的参数列表调用 '(String)'

标签 ios swift macos

我必须将一个较旧的 Swift 1.2 项目移植到 Swift 2.1,并且该项目广泛使用了 ExSwift。不幸的是,ExSwift 还没有为 Swift 2.1 更新(它被遗弃了吗?上次更新是六个月前)。

这段代码出现了上述错误:

public func * (array: [String], separator: String) -> String {
    return array.implode(separator)!
}

由于数组没有 implodeWithSeparator 方法,我该如何修复它?

最佳答案

此功能由

extension SequenceType where Generator.Element == String {
    /// Interpose the `separator` between elements of `self`, then concatenate
    /// the result.  For example:
    ///
    ///     ["foo", "bar", "baz"].joinWithSeparator("-|-") // "foo-|-bar-|-baz"
    @warn_unused_result
    public func joinWithSeparator(separator: String) -> String
}

方法:

public func * (array: [String], separator: String) -> String {
    return array.joinWithSeparator(separator)
}

let x = ["a", "b", "c"] * ","
print(x) // a,b,c

关于ios - 无法使用类型为 'implode' 的参数列表调用 '(String)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33911891/

相关文章:

ios - 如何在 TableView 中的行之间创建填充(间距)

ios - 默认 SDWebImage 缓存大小

macos - 将mp3文件打包到Qt应用程序中

macos - 从 NSToolbar 覆盖 prepareForSegue

ios - SqlCommand 对象的构造函数和 Dispose 方法在 Mono 中是线程安全的吗?

iphone - 如何像 Interface Builder 一样调整 iOS UI 组件的大小

ios - 使用工具栏正确导航

objective-c - 什么是 ObjectiveC.gcno?它应该包含在源代码存储库中吗?

ios - 生成方波、锯齿波和正弦波样本并写入 AIFF 文件 - 大端问题

macos - AppleScript 密码检查