为什么方法会删除?

时间:2016-10-06 16:24:14

标签: xcode8

我已经定义了这样一个类:

type

如果我从该方法声明一个闭包,则该方法显示为删除

internal class C {
    internal func method() -> Void {
        print("method called")
    }
}

如果我在autocasting paranthesis let closure = C.init().meth let closure2 = C.meth

中使用它,也会发生同样的情况
\(...)

Xcode示例:

example1 example2 enter image description here

1 个答案:

答案 0 :(得分:10)

由于您的函数method()没有返回任何内容,因此发生了删除。您尝试完成的上下文(赋值和插值)都期望值,因此不建议在那里返回Void的方法。

如果您尝试分配系统函数的结果,则会看到相同的删除线,例如如果你这样做:

var arr = [1,2,3]
arr.append(4) // no strikethrough
let result = arr.append(5) // you will see strikethough on 'append'