类方法默认访问级别为 internal

3
通常一个类会有很多方法。把所有的方法都设置为私有的,只保留一两个没有访问修饰符是很烦人的。
有没有一种方法可以默认将所有方法都设置为私有的,并给公共方法赋予访问修饰符?也许可以通过为类分配访问修饰符来实现。

很抱歉,这样的东西是不存在的,你必须将你的方法“私有化” - 或者也许是“文件私有化”。 - Ahmad F
1个回答

7

将所有私有方法移动到同一文件的扩展中,并将其标记为fileprivate

class Foo {
    // public stuff, stored properties etc.
}

fileprivate extension Foo {
    // private methods, computed properties etc.
    func bar() {
        // this method is fileprivate
    } 
}

@hasan83,你必须使用fileprivate而不是private。并且像之前一样把它们放在同一个文件中。 - Nikolai Ruhe
它起作用了。我的问题是因为我没有将扩展名命名为类的名称 :) - hasan
1
哦,是的。命名类别是一个 Objective-C 的概念,在 Swift 中不存在。 - Nikolai Ruhe
还有一件事。我将其中一个函数命名为 #selector(CountdownController.setCountdown)。这迫使我通过在函数前添加 @objc 来将其公开给 Objective-C。 - hasan
1
这是一个明确的好事情(在您依赖于objc运行时的地方添加@objc)。 - Nikolai Ruhe
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接