无法构造枚举,因为它没有可访问的初始化程序

Posted

技术标签:

【中文标题】无法构造枚举,因为它没有可访问的初始化程序【英文标题】:enum cannot be constructed because it has no accessible initialisers 【发布时间】:2020-12-05 08:21:35 【问题描述】:

我正在尝试实现某种“演练”部分,用户应该能够“滑动”通过。我遇到了这个问题“PageTut 无法构造,因为它没有可访问的初始化程序”

这两个组件在不同的包中,我什至尝试将结构设置为公共但仍然没有工作

我已经查过了,但我就是找不到有用的东西来解决我的问题,而且它实际上变得令人沮丧。任何人都知道我该如何解决这个问题?任何帮助或想法将不胜感激

import UIKit

public struct PageTut 

    let TutTitle: String
    let TutDescr: String
    let TutImageSrc: TutImageSrc

    public enum TutImageSrc 
        case name(String)
        case src_url(URL)
    


在另一个文件中

import UIKit

class TutViewController: UIViewController 

    private var pages = [PageTut]()

    override func viewDidLoad() 
        super.viewDidLoad()
        configPages()
    

    private func configPages() 
        pages.append(PageTut(TutTitle: "", TutDescr: "", TutImageSrc: PageTut.TutImageSrc("")))
    

【问题讨论】:

【参考方案1】:
PageTut(TutTitle: "", TutDescr: "", TutImageSrc: PageTut.TutImageSrc("")) 

应该是

 PageTut(TutTitle: "", TutDescr: "", TutImageSrc: .name("your image"))

【讨论】:

以上是关于无法构造枚举,因为它没有可访问的初始化程序的主要内容,如果未能解决你的问题,请参考以下文章

如何使这个 UIButton 的动作正确运行?

Swift 无法使用枚举初始化程序访问部分 JSON 响应

如何在 swiftUI 中创建一个普通视图

无法使用集合初始化程序初始化类型“”,因为它没有实现“System.Collections.IEnumerable”

继承&多态

无法使用集合初始化程序实现类型,因为它没有实现'System.Collections.IEnumerable'