ios - 无法在 swift 中重载 viewDidLoad() 中的函数

标签 ios swift

无法重载 viewDidLoad() 中的函数 swift 。 它给出错误 definition conflict with previous value" at "func joinString(#strings: String...) -> String {

override func viewDidLoad() {
    super.viewDidLoad()
    func joinString(#strings: String[]) -> String {
            var str = "" 
            for s in strings {
                str += s
            }
            return str
        }
    func joinString(#strings: String...) -> String {
            return joinString(strings: strings)
        }
    println(joinString(strings : ["I", "am", "an", "array"]))
    println(joinString(strings : "I", "am", "an", "array"))
}

最佳答案

对我来说,这看起来像是一个 Swift 错误(或未记录的限制)。 函数/方法重载通常有效,即使使用数组与可变参数也是如此:

class MyClass {

    func foo(arg: Int) { println("An integer") }
    func foo(arg: Double) { println("A double") }

    func joinString(#strings: String[])  { println("An array") }
    func joinString(#strings: String...)  { println("Variadic parameters")}

    func test() {
        foo(2)
        foo(3.14)
        joinString(strings : ["I", "am", "an", "array"])
        joinString(strings : "I", "am", "an", "array")
    }
}

并产生预期的输出:

An integer
A double
An array
Variadic parameters

But overloading does not work for nested functions:

class MyClass {

    func test() {

        func foo(arg: Int) { println("An integer") }
        func foo(arg: Double) { println("A double") }
        // error: definition conflicts with previous value

        func joinString(#strings: String[])  { println("An array") }
        func joinString(#strings: String...)  { println("Variadic parameters")}
        // error: definition conflicts with previous value

        func test() {
            foo(2)
            foo(3.14)
            joinString(strings : ["I", "am", "an", "array"])
            joinString(strings : "I", "am", "an", "array")
        }
    }
}

关于ios - 无法在 swift 中重载 viewDidLoad() 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24484493/

相关文章:

ios - 删除 UITableView 附件上的背景颜色

ios - 实现另一个参数的 Swift 泛型类参数

Swift KVO - 观察枚举属性

ios - 如何清除 iOS10 Swift 中的 UISearchBar 背景颜色?

ios - 当 react native 应用程序 View 加载时,如何在 native ios 上调用 ViewController 类?

ios - 仅调用一个 UICollectionViewCell 的函数

ios - 快速跨度缩放

iphone - 如何使用代码在 ios 应用程序中录制屏幕视频?

ios - Xcode 自动布局约束不起作用(使用 Storyboard)

ios - 创建单独的文件