Чтобы создать экземпляр, если он nil
выглядит как ленивое свойство экземпляра.
if project == nil {
project = Project()
}
довольно target-c-ish , в Swift есть более изощренный способключевое слово lazy
не требуется, поскольку по умолчанию свойства класса создаются лениво.
static var project : Project = {
let proj = Project()
proj.title = titleInput.text
proj.description = descInput.text
proj.field1 = field1.text
proj.field2 = field2.text
proj.field3 = field3.text
proj.field4 = field4.text
proj.field5 = field5.text
return proj
}()
Вы также можете использовать
static var project = Project()
или, если Project
имеет семантику ссылок даже
static let project = Project()
на верхнем уровне класса - это свойство также лениво создается - и присваивать значения свойств где-то еще.
Во всех случаях экземпляр не создается до тех пор, пока к нему не получен доступ.в первый раз, и он создается один раз .