我的代码通过以下方式设置:
class MyClass {
let text: String
init(text: String) {
self.text = text
}
}
var items = [MyClass]()
let item = MyClass(text: "sometext")
想法是将项目放入项目数组中,例如:
items.append(item)
这的主要问题是我将这些项目初始化到一个快速文件中,并且会收到错误消息 不允许在顶层表达 另外,我最好不要在诸如viewDidLoad()之类的地方使用它,因为可能有太多的MyClass项。
我已经尝试过了
class MyClass {
let text: String
static var items = [MyClass]()
init(text: String) {
self.text = text
MyClass.items.append(self)
}
}
根据建议here
但是,在初始化几个 MyClass 对象之后,项仍然为空。
有什么办法可以做到这一点?
编辑:谢谢您到目前为止的建议。这些是拼写错误(使用 item 而不是 self ,以及 items ,而不是 MyClass.items 。)我在代码中使用了它,但可编译,可惜仍然无法正常工作。
答案 0 :(得分:1)
您的代码无法编译。这是该类的无错误代码。
class MyClass {
let text: String
static var items = [MyClass]()
init(text: String) {
self.text = text
MyClass.items.append(self)
}
}
代码中有两件事是错误的。
self
附加到items
,因为self
是您创建的Item
的实例,可以在init
中使用。示例:
let blah = MyClass(text: "blah")
let bleh = MyClass(text: "bleh")
print(MyClass.items.count) // Prints 2