由于“内部”保护级别,无法访问“ init”

时间:2019-09-14 06:56:40

标签: swift access-levels xcode10.3

public class SelectedValue {
    static let sharedInstance = SelectedValue()
    public var reportPostId : Int? = nil
    public var report_GroupId : Int? = nil
    public var postType : String? = nil

}

由于“内部”保护级别,无法访问“ init” 请帮我解决这个问题。 谢谢

1 个答案:

答案 0 :(得分:2)

如前所述,init方法(您可能在没有其名称的情况下调用了)是private。使其更public来访问它。

点击在此处声明'init'的灰线,跳到问题根源。 enter image description here

请注意MyClass()等于MyClass.init()。这意味着您每次构建对象时都会调用init方法。

并且还请注意,如果您未指定访问级别,则默认为internal

所以这个:

class MyClass { }

等于:

internal class MyClass {}

因此您应将其更改为

public MyClass { }