gpt4 book ai didi

swift - swift 中的默认初始化器

转载 作者:IT王子 更新时间:2023-10-29 05:11:55 29 4
gpt4 key购买 nike

我创建了一个带有字符串选项(字符串?)的 swift 类,并在另一个 swift 文件中实例化了该类,但出现了编译错误。当我在同一个文件中实例化类时,没有错误。我做错了什么吗?我仔细检查了行为,这种行为甚至与 swift 文档中给出的类定义一致:

class ShoppingListItem {
var name: String?
var quantity = 1
var purchased = false
}
var item = ShoppingListItem()

摘自:Apple Inc.“The Swift Programming Language”。电子书。 https://itun.es/in/jEUH0.l

如果 var item = ShoppingListItem()appDelegate.swift 中完成,从函数 application:didFinishLaunchingWithOptions 我们得到错误:

<class> cannot be initialised because it has no accessible initializers

OTOH,如果我们在类声明结束后立即保留实例化,就没有问题。

编辑:这个问题不是问题,当前的默认初始化行为似乎不一致或者我需要更好地理解它

最佳答案

这很可能是 Swift 编译器和访问控制的问题(不是指指点点,只是想排除故障)。向类中添加一个显式初始化程序,看看是否可行:

class ShoppingListItem {
var name: String?
var quantity = 1
var purchased = false

init() { }
}

如果这不起作用,则将类设置为 public,连同初始化程序

    public class ShoppingListItem {
var name: String?
var quantity = 1
var purchased = false

public init() { }
}

关于swift - swift 中的默认初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25327168/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com