【发布时间】:2021-05-29 01:49:36
【问题描述】:
我有一个Event 类,其中包含Date、Time、Activity 等变量。用户可以使用一系列视图控制器创建一个Event,让用户构建它一次可变,有点像演练。我的问题是为了在第一个屏幕上初始化 Event,我使用了一个空的初始化程序,并且所有实例变量默认情况下都是可选的。当用户浏览屏幕时,它们会被相应地设置。随着时间的推移,我将如何正确初始化这个类?对所有变量使用可选项似乎不合适。
我想像这样在第一个屏幕上初始化Event:
var event = Event()
并一一设置它的实例变量,而不是它们都是可选的。
【问题讨论】:
-
"我想初始化..." 不。你不能随着时间的推移初始化一个类。您可以随着时间的推移设置实例的属性。既然如此,你正在做的似乎很好。别担心,开心就好。
-
但是,您也可以继续调用生成器,该生成器仅在提供了所有需要的信息后才创建完整的事件。
-
@matt 这样的构建器功能如何工作?它如何在每次通话中添加到相同的事件中?或者变量仍然必须是可选的?
-
Builder 的变量是什么无关紧要,因为它们是私有的。它只是函数:输入函数,客户端可以提供信息,输出函数,生成器可以提供完整的事件。关键是,在这个模型上,Event 不需要任何 Optional 属性,因为 Builder 在获得所有信息之前不会实例化它。
标签: swift xcode class optional