我是Swift的新手,我在使用类和结构时遇到了麻烦。
我有一个名为Workspace的结构:
Public Enum PpEntryEffect
ppEffectAppear = 3844
ppEffetFade = 1793
'...
End Enum
这是我的班级用户:
foo = ppEffectFade
所以我在视图控制器中所做的是:
struct Workspace: Decodable {
var guid: String
var name: String
func getUserWorkspace(base: String, completed: @escaping () -> ()){
//some code
}
}
问题是代码永远不会进入函数co.WorData?.getUserWorkspace(base:co.Base)
在我将它放入结构之前它直接在课堂上但是因为我改变了它它不再工作所以我想我可能会用错误的方式调用它?
答案 0 :(得分:2)
WorData
是零。
条件展开(co.WorData?.getUserWorkspace(base: co.Base)
将在尝试调用方法之前检查WorData是否有值。如果它是nil且Swift没有这样做,它就会崩溃。
您需要始终将其设置为新
var worData = Workspace()
在init类之后设置它
var user = User()
user.worData = Workspace() // or pass a specific one in
或要求使用工作区初始化您的User对象
class User: NSObject {
var wor = [Workspace]()
var workspace: Workspace // use lower camel case for var names
required init(workspace: Workspace) {
self.workspace = workspace
}
}