使用类中结构的函数

时间:2018-05-11 14:41:43

标签: ios swift function class structure

我是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)

在我将它放入结构之前它直接在课堂上但是因为我改变了它它不再工作所以我想我可能会用错误的方式调用它?

1 个答案:

答案 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
    }

}