【发布时间】:2014-08-15 13:22:29
【问题描述】:
我创建了一个带有可选字符串(String?)的 swift 类,并在另一个 swift 文件中实例化了该类,但出现了编译错误。当我在同一个文件中实例化类时,没有错误。我做错了什么吗?我仔细检查了该行为,即使与 swift 文档中给出的类定义也是一致的:
class ShoppingListItem {
var name: String?
var quantity = 1
var purchased = false
}
var item = ShoppingListItem()
摘自:Apple Inc.“Swift 编程语言”。电子书。 https://itun.es/in/jEUH0.l
如果var item = ShoppingListItem() 在appDelegate.swift 中完成,则从函数application:didFinishLaunchingWithOptions 我们得到错误:
<class> cannot be initialised because it has no accessible initializers
OTOH,如果我们在类声明一结束就保持实例化,就没有问题。
编辑:这个问题不是什么大问题,当前的默认初始化程序行为似乎不一致,或者我需要更好地理解它
【问题讨论】:
-
请发布您的错误
-
另外在你使用类的地方添加一些上下文,我不确定我是否理解这个问题。
-
你添加
init(){}了吗? -
@PseudoNym01 出现编译错误:
无法初始化,因为它没有可访问的初始化程序。 -
@HighFlyingFantasy 我创建了一个新的 swift 文件,其中包含我的模型,在其中我创建了一个类(以上面的代码作为示例类)。然后我在 appDelegate - applicationdidFinishLaunchingWithOptions 中实例化了这个类。这样做会产生编译错误,即上述错误。
标签: swift